【发布时间】:2018-12-13 14:25:38
【问题描述】:
鉴于下面的代码,当所有任务都运行完成而不阻塞线程时,通知消费者最优雅的方式是什么?目前我有一个使用计数器的解决方案,该计数器在Execute(action) 之前递增并在Continuation() 和LogException() 之后递减。如果计数器为零,则可以安全地假设没有更多任务正在处理。
【问题讨论】:
-
您是否尝试过启动
new Thread和 awaits 前一个thread? -
ContinueWith返回一个可以传递给Task.WhenAll的任务,然后您可以等待对Task.WhenAll的调用。
标签: c# .net multithreading asynchronous task