次の方法で共有


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なく)、スレッドが既に保持しているロックを再入力しようとしたときに例外がスローされます。 ただし、スレッド所有権の追跡が無効になっている場合は、既に保持されているロックを入力しようとするとデッドロックが発生します。

最初に呼び出さずに呼びEnterExitすと、内部状態がSpinLock破損する可能性があります。

適用対象

こちらもご覧ください