TryEnter Method (TimeSpan, Boolean)
From Task Parallel System.Threading
|
|
| .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. |