SpinLock.Enter(Boolean) Methode

Definition

Ruft die Sperre zuverlässig ab, sodass selbst wenn eine Ausnahme innerhalb des Methodenaufrufs auftritt, zuverlässig untersucht werden kann, lockTaken ob die Sperre erworben 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 erworben wird; andernfalls "false". lockTaken muss vor dem Aufrufen dieser Methode auf "false" initialisiert werden.

Ausnahmen

Das lockTaken Argument muss vor dem Aufrufen der EINGABETASTE auf "false" initialisiert werden.

Die Threadbesitzernachverfolgung ist aktiviert, und der aktuelle Thread hat diese Sperre bereits erworben.

Hinweise

SpinLock ist eine nicht erneute Sperre, d. h., wenn ein Thread die Sperre enthält, ist es nicht erlaubt, die Sperre erneut einzugeben. Wenn die Nachverfolgung des Threadbesitzes aktiviert ist (unabhängig davon, ob sie aktiviert IsThreadOwnerTrackingEnabledist) wird eine Ausnahme ausgelöst, wenn ein Thread versucht, eine bereits vorhandene Sperre erneut einzugeben. Wenn die Nachverfolgung des Threadbesitzes jedoch deaktiviert ist, führt der Versuch, eine bereits gehaltene Sperre einzugeben, zu einem Deadlock.

Wenn Sie anrufenExit, ohne zuerst den internen Zustand des Anrufs SpinLock aufgerufen Enter zu haben, kann beschädigt werden.

Gilt für:

Weitere Informationen