Task.WaitAny的最大任务数?

Gus*_*man 4 c# multithreading asynchronous task

我正在创建一个将产生大量工作任务的系统,在我的应用程序中,我正在执行Task.WaitAny以检索第一个完成的任务。

我担心的是我可以发送多少个任务给WaitAny,我知道WaitHandle的WaitAny / All最多只能支持64个等待句柄,而且我不确定Task.WaitAny的基础机制是否在内部使用等待句柄来等待完成。任务,因此这些限制适用于他们。

可以将多少个任务传递给Task.WaitAny(与WaitHandles一样)有没有限制?

干杯。

Kev*_*sse 5

据我所知,它在内部通过将所有任务的延续链接在一起而起作用:http : //referencesource.microsoft.com/#mscorlib/system/threading/Tasks/TaskFactory.cs,db51a91904616672
(具有内部优化功能,以及一些优化功能)多个任务一次结束​​时处理竞态的代码)

因此,对WaitHandles的限制不应在此处应用。