【发布时间】:2021-10-20 10:33:59
【问题描述】:
我正在使用 AutoResetEvent。 我只需要知道是否可以获得等待线程的数量?
if (WaitHandler.Reset())
{
if (WaitHandler.WaitOne(WaitMilliseconds))
{
// do something after WaitHandler.Set()
}
}
我需要知道 WaitOne() 中当前有多少线程在等待。是否可以限制它们,比如最多 10 个线程 - 所有其他线程都返回?如果没有 - 如何限制它?
【问题讨论】:
-
你在找SemaphoreSlim或Semaphore类吗?
-
@Steeeve Semaphore 在这种情况下看起来不错。我会检查的。谢谢
-
@Steeeve 不,我正在寻找不同的东西。信号量限制了可以同时访问资源或资源池的线程数。但我需要阻塞所有线程(最多 10 个),直到另一个线程(和方法)发生某些事情
标签: c# .net multithreading .net-core