使用.NET 4任务库有一种方法可以自动获得结果通知,并在不使用回调的情况下跟踪结果吗?
我正在尝试异步创建和启动任务并自动获得通知结果是否有办法使用.NET 4任务库执行此操作?
答案 0 :(得分:1)
我正在尝试异步创建和启动任务并自动获得通知结果是否有办法使用.NET 4任务库执行此操作?
使用Task
类,您可以在任务上安排 continuation 。请注意,这实际上仍然是一种回调形式,但它是使用可能更好的API创建的:
Task task = Task.Factory.StartNew( () => SomeCodeAsync() );
task.ContinueWith( t =>
{
// Run this after the task completes
}, TaskScheduler.FromCurrentSynchronizationContext());
在续集中添加TaskScheduler.FromCurrentSynchronizationContext()
是完全可选的。如果您正在编写GUI应用程序,则会将连续编组回到初始同步上下文,这意味着您可以直接访问该代码中的UI元素,而无需使用其他编组技术(例如Dispatcher.Invoke
)。
有关详细信息,我建议您仔细阅读我的post on task continuations。