我正在将应用程序从Silverlight迁移到Windows 8,我想利用System.Theading.Tasks API。我有许多具有Start()方法的类,并在完成时触发Completed事件。谁会知道如何在任务中包装它?
答案 0 :(得分:1)
传统的异步模式是每个异步调用的Begin和End方法。您可以使用FromAsync方法将其包装在任务中。
Here you can find some documentation。您可以使用相同的功能,但随后使用Start和End方法。
答案 1 :(得分:0)
您可以使用TaskCompletionSource<TResult>
课程。它将允许您手动控制任务的完成。
例如:
var tcs = new TaskCompletionSource<int>();
myService.Completed += (sender,args) => { tcs.SetResult(args.Value) };
myService.Start();
return tcs.Task;