标签: c# multithreading
我只是想确保我在这里理解一些东西。如果我获得Monitor.Enter或lock的锁定,是否需要在释放锁定之前调用Pulse?
Monitor.Enter
lock
Pulse
Monitor.Enter Monitor.Pulse // Is that neccessary? Monitor.Exit
我始终认为Monitor.Exit调用会隐式调用Monitor.Pulse。这是真的吗?
Monitor.Exit
Monitor.Pulse
我不确定你什么时候会使用Pulse。这就是造成混乱的原因。
答案 0 :(得分:10)
不,您不需要致电Pulse ...但退出时也不会自动完成。
Pulse和PulseAll与Wait一起用于信令目的。
PulseAll
Wait
有关更多详细信息,请参阅this page的后半部分(忽略死锁位,基本上:)