SpinLock.Enter(Boolean) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A zárolást megbízható módon szerzi be, így még ha kivétel is történik a metódushíváson belül, megbízhatóan vizsgálható annak megállapításához, lockTaken hogy a zárolást megszerezték-e.
public:
void Enter(bool % lockTaken);
public void Enter(ref bool lockTaken);
member this.Enter : bool -> unit
Public Sub Enter (ByRef lockTaken As Boolean)
Paraméterek
- lockTaken
- Boolean
Igaz, ha a zárolás be van szerezve; ellenkező esetben hamis.
lockTaken A metódus meghívása előtt hamis értékre kell inicializálni.
Kivételek
Az lockTaken argumentumot az Enter meghívása előtt hamis értékre kell inicializálni.
A szál tulajdonjogának nyomon követése engedélyezve van, és az aktuális szál már megszerezte ezt a zárolást.
Megjegyzések
SpinLock nem újraküldéses zárolás, ami azt jelenti, hogy ha egy szál tartja a zárolást, akkor nem léphet be újra a zárolásba. Ha a szál tulajdonjogának nyomon követése engedélyezve van (függetlenül attól, hogy engedélyezve IsThreadOwnerTrackingEnabledvan-e), a rendszer kivételt fog kivenni, amikor egy szál megpróbál újra belépni egy már meglévő zárolásba. Ha azonban a szál tulajdonjogának nyomon követése le van tiltva, a már tárolt zárolás megadásának megkísérlése holtpontot eredményez.
Ha anélkül hív, Exit hogy először hívná Enter meg a SpinLock belső állapotát, megsérülhet.