SpinLock.Enter(Boolean) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
メソッド呼び出し内で例外が発生した場合でも、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なく)、スレッドが既に保持しているロックを再入力しようとしたときに例外がスローされます。 ただし、スレッド所有権の追跡が無効になっている場合は、既に保持されているロックを入力しようとするとデッドロックが発生します。
最初に呼び出さずに呼びEnter出Exitすと、内部状態がSpinLock破損する可能性があります。