async/await 机制中是否有一个集成点来挂钩并知道何时启动异步方法?
自定义 TaskScheduler 可以提供这个钩子吗?自定义 SynchronizationContext?
我希望能够跟踪某些方法调用并知道它们与哪个任务(或代码)相关联。
谢谢!
async/await 机制中是否有一个集成点来挂钩并知道何时启动异步方法?
自定义 TaskScheduler 可以提供这个钩子吗?自定义 SynchronizationContext?
我希望能够跟踪某些方法调用并知道它们与哪个任务(或代码)相关联。
谢谢!
根据“任务状态”部分中的基于任务的异步模式:
从 TAP 方法返回的所有任务都必须是“热的”[...],这意味着它们所代表的异步操作已经启动,并且它们的 TaskStatus 是除 Created 之外的枚举值。
这意味着您将始终在Task
创建它时立即启动它(至少如果工厂方法实现了 TAP,对于 .Net 框架提供的所有方法都是如此)。
Task
如果您使用创建并返回“冷”(非运行)new Task()
,则无法确定是否Task.Start()
调用了该方法。您只能TaskStatus
定期检查该物业。