0

使用 .NET 4 任务库有没有一种方法可以在不使用回调的情况下自动获得结果通知并跟踪结果?

我正在尝试异步创建和启动任务并自动获得通知结果有没有办法使用 .NET 4 任务库来做到这一点?

4

1 回答 1

1

我正在尝试异步创建和启动任务并自动获得通知结果有没有办法使用 .NET 4 任务库来做到这一点?

通过Task课程,您可以安排任务的继续。请注意,这实际上仍然是一种回调形式,但它是使用可能更好的 API 创建的:

Task task = Task.Factory.StartNew( () => SomeCodeAsync() );

task.ContinueWith( t =>
{
    // Run this after the task completes
}, TaskScheduler.FromCurrentSynchronizationContext());

添加TaskScheduler.FromCurrentSynchronizationContext()延续是完全可选的。如果您正在编写 GUI 应用程序,这会将延续编组回初始同步上下文,这意味着您可以直接访问该代码中的 UI 元素,而无需使用其他编组技术(例如Dispatcher.Invoke)。

有关更多详细信息,我建议阅读我关于任务延续的帖子,其中详细介绍了这一点。

于 2013-06-14T16:56:17.400 回答