SpinLock.Enter(Boolean) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.