次のコードでは、button1を押すと長い計算が実行され、結果がウィンドウのタイトルバーに表示されます。それは動作しますが、タスクStatus
にアクセスして、タスクが正常に実行されたかどうかを確認できますか(TaskStatus.RanToCompletion
)?非同期メソッドでawaitを使用する場合、どのようにタスクオブジェクトにアクセスできますか?
async private void button1_Click(object sender, EventArgs e)
{
Text = "Working";
int val = await LongTask();
Text = "Done: " + val;
}
async Task<int> LongTask()
{
return await Task.Run(() => LongFunction());
}
int LongFunction()
{
Thread.Sleep(5000);
return 1;
}