.NET Framework Class Library |
SpinLock..::.TryEnter Method (TimeSpan, Boolean%) |
SpinLock Structure See Also Send Feedback |
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
Exception | Condition |
---|---|
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..::.ArgumentOutOfRangeException | timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than MaxValue milliseconds. |