Enter Method

Task Parallel System.Threading

Initializes a new instance of the SpinLock structure with the option to track thread IDs to improve debugging.
Acquires 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 Enter ( _
	ByRef lockTaken As Boolean _
)
C#
public void Enter(
	ref bool lockTaken
)

Parameters

lockTaken
Type: System..::.Boolean %
True if the lock is acquired; otherwise, false. lockTaken must be initialized to false prior to calling this method.

Remarks

The default constructor for SpinLock tracks thread ownership.

Remarks

SpinLock is a non-reentrant lock, meaning that if a thread holds the lock, it is not allowed to enter the lock again. If thread ownership tracking is enabled (whether it's enabled is available through IsThreadOwnerTrackingEnabled), an exception will be thrown when a thread tries to re-enter a lock it already holds. However, if thread ownership tracking is disabled, attempting to enter a lock already held will result in deadlock.

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 Enter.

See Also