【发布时间】:2013-08-19 19:51:17
【问题描述】:
下面的Test_Click 是在UI 线程上运行的简化版代码(带有WindowsFormsSynchronizationContext):
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 不同),但到目前为止我找不到在线资源来确认这一点。
【问题讨论】:
标签: c# .net asynchronous task-parallel-library async-await