我对 C# 5 的 new async
/await
关键字完全陌生,我对实现进度事件的最佳方式感兴趣。
Progress
现在,如果事件本身发生,我更喜欢它Task<>
。我知道我可以将事件放在包含异步方法的类中,并在事件处理程序中传递某种状态对象,但对我来说,这似乎更像是一种解决方法而不是解决方案。我可能还希望不同的任务在不同的对象中触发事件处理程序,这样听起来很混乱。
有没有办法我可以做类似于以下的事情?:
var task = scanner.PerformScanAsync();
task.ProgressUpdate += scanner_ProgressUpdate;
return await task;