Monitor Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides a mechanism that synchronizes access to objects.
public ref class Monitor abstract sealed
public ref class Monitor sealed
public static class Monitor
public sealed class Monitor
[System.Runtime.InteropServices.ComVisible(true)]
public static class Monitor
type Monitor = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Monitor = class
Public Class Monitor
Public NotInheritable Class Monitor
- Inheritance
-
Monitor
- Attributes
Remarks
For more information about this API, see Supplemental API remarks for Monitor.
Properties
LockContentionCount |
Gets the number of times there was contention when trying to take the monitor's lock. |
Methods
Enter(Object) |
Acquires an exclusive lock on the specified object. |
Enter(Object, Boolean) |
Acquires an exclusive lock on the specified object, and atomically sets a value that indicates whether the lock was taken. |
Exit(Object) |
Releases an exclusive lock on the specified object. |
IsEntered(Object) |
Determines whether the current thread holds the lock on the specified object. |
Pulse(Object) |
Notifies a thread in the waiting queue of a change in the locked object's state. |
PulseAll(Object) |
Notifies all waiting threads of a change in the object's state. |
TryEnter(Object) |
Attempts to acquire an exclusive lock on the specified object. |
TryEnter(Object, Boolean) |
Attempts to acquire an exclusive lock on the specified object, and atomically sets a value that indicates whether the lock was taken. |
TryEnter(Object, Int32) |
Attempts, for the specified number of milliseconds, to acquire an exclusive lock on the specified object. |
TryEnter(Object, Int32, Boolean) |
Attempts, for the specified number of milliseconds, to acquire an exclusive lock on the specified object, and atomically sets a value that indicates whether the lock was taken. |
TryEnter(Object, TimeSpan) |
Attempts, for the specified amount of time, to acquire an exclusive lock on the specified object. |
TryEnter(Object, TimeSpan, Boolean) |
Attempts, for the specified amount of time, to acquire an exclusive lock on the specified object, and atomically sets a value that indicates whether the lock was taken. |
Wait(Object) |
Releases the lock on an object and blocks the current thread until it reacquires the lock. |
Wait(Object, Int32) |
Releases the lock on an object and blocks the current thread until it reacquires the lock. If the specified time-out interval elapses, the thread enters the ready queue. |
Wait(Object, Int32, Boolean) |
Releases the lock on an object and blocks the current thread until it reacquires the lock. If the specified time-out interval elapses, the thread enters the ready queue. This method also specifies whether the synchronization domain for the context (if in a synchronized context) is exited before the wait and reacquired afterward. |
Wait(Object, TimeSpan) |
Releases the lock on an object and blocks the current thread until it reacquires the lock. If the specified time-out interval elapses, the thread enters the ready queue. |
Wait(Object, TimeSpan, Boolean) |
Releases the lock on an object and blocks the current thread until it reacquires the lock. If the specified time-out interval elapses, the thread enters the ready queue. Optionally exits the synchronization domain for the synchronized context before the wait and reacquires the domain afterward. |
Applies to
Thread Safety
This type is thread safe.
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for