标签: c# multithreading semaphore
有没有办法找到那个
感谢。
答案 0 :(得分:7)
这是线程同步中的禁止知识。因为完全不可能做到这一点。它代表了无法解决的竞争条件。当你使用Habjan的方法时,你会得出结论,有两个线程在等待。一个微秒后另一个线程调用WaitOne(),有三个。但是你会根据陈旧的价值做出决定。
竞争条件没什么好处的,它们难以调试。他们习惯于每周只让你的代码失败一次。只要添加仪器代码以尝试诊断代码失败的原因,它们就会停止发生,因为添加的代码会改变时间。
从不这样做。