TryEnter Method (Object)

Monitor.TryEnter Method (Object)

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Attempts to acquire an exclusive lock on the specified object.

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

'Declaration
Public Shared Function TryEnter ( _
	obj As Object _
) As Boolean

Parameters

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.

ExceptionCondition
ArgumentNullException

The obj parameter is Nothing.

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.

NoteNote:

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 Function TryEnqueue(ByVal qValue As T) As Boolean

   ' Request the lock.
   If Monitor.TryEnter(m_inputQueue) Then
      Try
         m_inputQueue.Enqueue(qValue)

      Finally
         ' Ensure that the lock is released.
         Monitor.Exit(m_inputQueue)
      End Try
      Return True
   Else
      Return False
   End If
End Function


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2017 Microsoft