重置有线程等待的信号量的最佳方法是什么。现在我能想到的只是做一个 while 循环并释放信号量,直到发生信号量完全异常。我不确定什么是最佳实践。

semaphore.Close();
semaphore = new Semaphore(0,1);

或者
while(true)
{
   try
   {
      semaphore.Release();
   }
   catch
   {
      break;
   }
}
semaphore = new Semaphore(0,1);

最佳答案

如果您想这样做,您确定要从 Semaphore 开始吗?也许 ManualResetEvent 会更合适?

关于c# - 重置信号量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3989571/

10-10 18:42