C# equivalent to java's wait and notify?
38,721
Solution 1
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.
Solution 2
I think Wait Handles may work for you. See if this helps.
Author by
Omar Kooheji
I've given up a life of code and turned to the dark side. I now lead a team of talented software engineers to deliver quality systems.
Updated on December 26, 2020Comments
-
Omar Kooheji over 3 years
I am aware that you can lock an object in c# using lock but can you give up the lock and wait for something else to notify you that it's changed like you can in java with wait and notify?
It seems to me that synchronised and lock in java and c# respectively are synonomous.