是否有async / await机制的集成点可以挂钩并知道异步方法何时启动?
自定义TaskScheduler可以提供此挂钩吗?自定义SynchronizationContext?
我希望能够跟踪某些方法调用并知道它们与哪个任务(或代码)相关联。
谢谢!
答案 0 :(得分:1)
根据“任务状态”部分中的Task-based Asynchronous Pattern:
从TAP方法返回的所有任务必须“热”[...],这意味着它们所代表的异步操作已经启动,并且它们的TaskStatus是Created之外的枚举值。
这意味着一旦创建它就会始终启动Task
(至少在工厂方法实现TAP的情况下,对于.Net框架提供的所有方法都是如此)。
如果您使用Task
创建并返回“冷”(非运行)new Task()
,则无法找到是否已调用Task.Start()
方法。您只能定期查看TaskStatus
财产。