SpinLock.Enter(Boolean) メソッド

定義

メソッド呼び出し内で例外が発生した場合でも、 lockTaken を確実に調べてロックが取得されたかどうかを判断できるように、信頼性の高い方法でロックを取得します。

public:
 void Enter(bool % lockTaken);
public void Enter(ref bool lockTaken);
member this.Enter : bool -> unit
Public Sub Enter (ByRef lockTaken As Boolean)

パラメーター

lockTaken
Boolean

ロックが取得された場合は True。それ以外の場合は false。 lockTaken このメソッドを呼び出す前に false に初期化する必要があります。

例外

lockTaken引数は、Enter を呼び出す前に false に初期化する必要があります。

スレッド所有権の追跡が有効になっており、現在のスレッドがこのロックを既に取得しています。

注釈

SpinLock は再入可能でないロックです。つまり、スレッドがロックを保持している場合、ロックを再び入力することはできません。 スレッドの所有権の追跡が有効になっている場合 (有効になっているかどうかは、 IsThreadOwnerTrackingEnabledを使用して使用できます)、スレッドが既に保持しているロックを再入力しようとしたときに例外がスローされます。 ただし、スレッド所有権の追跡が無効になっている場合は、既に保持されているロックを入力しようとすると、デッドロックが発生します。

最初に呼び出さずにExitを呼び出すとEnterSpinLockの内部状態が破損する可能性があります。

適用対象

こちらもご覧ください