SpinLock.Enter Method

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:  mscorlib (in mscorlib.dll)

member Enter : 
        lockTaken:bool byref -> unit

Parameters

lockTaken
Type: System.Boolean

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

ExceptionCondition
ArgumentException

The lockTaken argument must be initialized to false prior to calling Enter.

LockRecursionException

Thread ownership tracking is enabled, and the current thread has already acquired this lock.

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.

If you call Exit without having first called Enter the internal state of the SpinLock can become corrupted.

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft