我知道你可以使用锁来锁定c#中的一个对象,但是你可以放弃锁定并等待别的东西通知你它已经像java那样改变了,并且有等待和通知吗?
在我看来,java和c#中的synchronized和lock分别是同义的。
答案 0 :(得分:88)
等效功能(包括常规锁定)位于Monitor类中。
foo.notify() => Monitor.Pulse(foo)
foo.notifyAll() => Monitor.PulseAll(foo)
foo.wait() => Monitor.Wait(foo)
C#中的lock
语句相当于使用适当的try / finally块调用Monitor.Enter
和Monitor.Exit
。
有关详细信息,请参阅my threading tutorial或Joe Albahari's one。
答案 1 :(得分:1)
我认为Wait Handles可能适合你。看看this是否有帮助。