問題
C#初心者です。
ボタン押した後、Main→TaskSampleが呼ばれ、
awaitを実行したあと、SubTask1が動きますが、すぐに戻ってきて"test"が出力されてしまいます。
こういう仕様なのでしょうか。そもそも書きかたがおかしいでしょうか。
実現したいこと
SubTask1が終わり、"Taskおわり"が出力後、"test”が出力されるような動きにしたいです。
該当のソースコード
C#
1 private void Main() 2 { 3 TaskSample(); 4 Console.WriteLine("test"); 5 6 } 7 8 private async void TaskSample() 9 { 10 await Task.Run(()=>SubTask1()); 11 Console.WriteLine("Taskおわり"); 12 } 13 14 private void SubTask1() 15 { 16 Thread.Sleep(10000); 17 18 } 19 20 private void button1_Click(object sender, EventArgs e) 21 { 22 Main(); 23 } 24 25
質問者さん、無言ですが、回答したのでそれに対するフィードバックを返してください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこがダメかを書くとより期待に近い回答が出てくるかも。とにかく無言は NG です。
スレッドを放置しておかないでクローズしてください。問題は解決したはず。
解決したら、解決に役に立った回答にベストアンサーをつけてスレッドをクローズするのがここでのマナーです。