Freigeben über


SpinLock.Enter(Boolean) Methode

Definition

Ruft die Sperre zuverlässig ab, sodass lockTaken auch bei einer Ausnahme innerhalb des Methodenaufrufs zuverlässig untersucht werden kann, um zu bestimmen, ob die Sperre abgerufen wurde.

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

Parameter

lockTaken
Boolean

True, wenn die Sperre abgerufen wird, andernfalls false. lockTaken muss vor dem Aufrufen dieser Methode mit false initialisiert werden.

Ausnahmen

Das lockTaken-Argument muss vor dem Aufrufen von Enter mit false initialisiert werden.

Die Threadbesitznachverfolgung wird aktiviert, und der aktuelle Thread hat diese Sperre bereits abgerufen.

Hinweise

SpinLock ist eine nicht erneute Sperrung, d. h. wenn ein Thread die Sperre hält, ist es nicht zulässig, die Sperre erneut einzugeben. Wenn die Threadbesitzerverfolgung aktiviert ist (ob IsThreadOwnerTrackingEnabledes aktiviert ist), wird eine Ausnahme ausgelöst, wenn ein Thread versucht, eine bereits vorhandene Sperre erneut einzugeben. Wenn die Thread-Besitzverfolgung deaktiviert ist, führt der Versuch, bereits eine Sperre einzugeben, zu einem Deadlock.

Wenn Sie anrufen Exit , ohne zuerst Enter den internen Zustand der SpinLock Datei aufgerufen zu haben, kann beschädigt werden.

Gilt für

Siehe auch