C#相当于java的等待和通知?

Oma*_*eji 53 c# java multithreading

我知道你可以使用锁来锁定c#中的一个对象但是你可以放弃锁定并等待别的东西通知你它已经像在等待和通知的java中那样被改变了吗?

在我看来,java和c#中的synchronized和lock分别是同义的.

Jon*_*eet 92

等效功能(包括正常锁定)在Monitor类中.

foo.notify() => Monitor.Pulse(foo)
foo.notifyAll() => Monitor.PulseAll(foo)
foo.wait() =>  Monitor.Wait(foo)
Run Code Online (Sandbox Code Playgroud)

lockC#中的语句等同于调用Monitor.EnterMonitor.Exit使用适当的try/finally块.

有关详细信息,请参阅我的线程教程Joe Albahari的文章.