Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Monitor.TryEnter Method (Object)

Attempts to acquire an exclusive lock on the specified object.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)

public static bool TryEnter(
	Object obj


Type: System.Object
The object on which to acquire the lock.

Return Value

Type: System.Boolean
true if the current thread acquires the lock; otherwise, false.


The obj parameter is null.

If successful, this method acquires an exclusive lock on the obj parameter. This method returns immediately, whether or not the lock is available.

This method is similar to Enter, but it will never block. If the thread cannot enter without blocking, the method returns false, and the thread does not enter the critical section.


Use Monitor to lock objects (that is, reference types), not value types. For details, see Enter and the conceptual topic Monitors.

The following example demonstrates how to use the TryEnter method. This code is part of a larger example provided for the Enter method.

// Try to add an element to the queue: Add the element to the queue 
// only if the lock is immediately available.
public bool TryEnqueue(T qValue)
   // Request the lock.
   if (Monitor.TryEnter(m_inputQueue))
         // Ensure that the lock is released.
      return true;
      return false;


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

© 2015 Microsoft