TryEnter Method (TimeSpan, Boolean)

Task Parallel System.Threading

Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

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

Syntax

Visual Basic (Declaration)
Public Sub TryEnter ( _
	timeout As TimeSpan, _
	ByRef lockTaken As Boolean _
)
C#
public void TryEnter(
	TimeSpan timeout,
	ref bool lockTaken
)

Parameters

timeout
Type: System..::.TimeSpan
A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.
lockTaken
Type: System..::.Boolean %
True if the lock is acquired; otherwise, false. lockTaken must be initialized to false prior to calling this method.

Remarks

Unlike Enter(Boolean%), TryEnter will not block indefinitely waiting for the lock to be available. It will block until either the lock is available or until the timeout has expired.

Exceptions

ExceptionCondition
System.Threading..::.LockRecursionException Thread ownership tracking is enabled, and the current thread has already acquired this lock.
System..::.ArgumentException The lockTaken argument must be initialized to false prior to calling TryEnter.
System..::.ArgumentOutOfRangeExceptiontimeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than MaxValue milliseconds.

See Also