以下は、UI スレッド ( WindowsFormsSynchronizationContextを使用)で実行されるコードのTest_Click
簡略化されたバージョンです。
void Test_Click(object sender, EventArgs e)
{
var task = DoNavigationAsync();
task.ContinueWith((t) =>
{
MessageBox.Show("Navigation done!");
}, TaskScheduler.FromCurrentSynchronizationContext());
}
TaskScheduler.FromCurrentSynchronizationContext()
継続アクションが同じ UI スレッドで実行されるように明示的に指定する必要がありますか? またはContinueWith
、実行コンテキストを自動的にキャプチャしますか (したがって、TaskScheduler
この場合、引数を冗長にします)?
デフォルトでは(とは異なり)それを行わないと思いますawait
が、これまでのところ、これを確認するためのオンラインリソースを見つけることができませんでした.