C# equivalent to java's wait and notify?

The equivalent functionality (including the normal locking) is in the Monitor class.

foo.notify() => Monitor.Pulse(foo)
foo.notifyAll() => Monitor.PulseAll(foo)
foo.wait() =>  Monitor.Wait(foo)

The lock statement in C# is equivalent to calling Monitor.Enter and Monitor.Exit with an appropriate try/finally block.

See my threading tutorial or Joe Albahari's one for more details.


I think Wait Handles may work for you. See if this helps.