我可以通过在 Task 上提供扩展方法 GetAwaiter 来使用 .Net 4.0 创建自己的 TaskAwaiter,但是在使用 .Net 4.5 运行代码时,这是不可能的。
.Net 4.5 上的 Task 类有一个名为 GetAwaiter 的方法,而我的扩展方法永远不会被调用。
我的 1 条评论:我可以在另一个类(不是 Task)上创建自定义等待器,但是异步方法只能返回 Task 或 void,并且包装每个任务/异步方法调用并不实用/优雅。
我的 2 条评论:我需要的是在创建(或等待)任务时自动保存数据并在继续方法上检索此数据,而不更改同步上下文。
我的 3 条评论:.Net 4.0 和我的自定义 TaskAwaiter 一切正常。