SpinLock.Enter(Boolean) Methode

Definitie

Verwerft de vergrendeling op een betrouwbare manier, zodat zelfs als er een uitzondering optreedt binnen de methodeaanroep, lockTaken betrouwbaar kan worden onderzocht om te bepalen of de vergrendeling is verkregen.

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

Parameters

lockTaken
Boolean

Waar als de vergrendeling wordt verkregen; anders, onwaar. lockTaken moet worden geïnitialiseerd op false voordat u deze methode aanroept.

Uitzonderingen

Het lockTaken argument moet worden geïnitialiseerd op false voordat u Enter aanroept.

Het bijhouden van het eigendom van threads is ingeschakeld en de huidige thread heeft deze vergrendeling al verkregen.

Opmerkingen

SpinLock is een niet-reentrant slot, wat betekent dat als een thread de vergrendeling vasthoudt, het niet opnieuw mag worden ingevoerd. Als het bijhouden van het eigendom van threads is ingeschakeld (of deze is ingeschakeld via IsThreadOwnerTrackingEnabled), wordt er een uitzondering gegenereerd wanneer een thread probeert opnieuw een vergrendeling in te voeren die al is vastgehouden. Als het bijhouden van threadeigendom echter is uitgeschakeld, resulteert een poging om een vergrendeling in te voeren die al is vastgehouden, een impasse.

Als u belt Exit zonder dat u eerst de interne status van de app Enter hebt aangeroepenSpinLock, kan dit beschadigd raken.

Van toepassing op

Zie ook