Edit

Share via


Monitor Class

Definition

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