等待的线程数和信号量
答
这是被禁止的知识在线程同步。因为完全无法做到这一点是完全不可能的。它代表了一个无法解决的竞争条件。当你使用Habjan的方法时,你会得出结论,有两个线程正在等待。一微秒后另一个线程调用WaitOne()有三个。但是你会根据陈旧的价值做出决定。
竞争条件没有什么可混淆的,它们难以置信地难以调试。他们习惯于让您的代码每周只能失败一次。只要您添加工具代码以尝试诊断代码失败的原因,它们就会停止发生,因为添加的代码改变了时间。
从来没有做到这一点。
+0
好的...明白了你的观点。 – Azodious 2011-03-31 11:28:52
如果我使用Thread类,则可以解决第三点。但是前两点呢? – Azodious 2011-03-30 11:22:24
什么样的信号量? Semaphore,SemaphoreSlim或Windows信号量对象? – 2011-03-30 11:28:27
它是一个信号量。不是SemSlim或Windows信号量对象。 – Azodious 2011-03-30 11:37:20