SpinLock.Enter(Boolean) Metod

Definition

Hämtar låset på ett tillförlitligt sätt, så att även om ett undantag inträffar inom metodanropet, lockTaken kan undersökas på ett tillförlitligt sätt för att avgöra om låset förvärvades.

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

Parametrar

lockTaken
Boolean

Sant om låset förvärvas; annars falskt. lockTaken måste initieras till false innan den här metoden anropas.

Undantag

Argumentet lockTaken måste initieras till false innan du anropar Retur.

Spårning av trådägarskap är aktiverat och den aktuella tråden har redan hämtat det här låset.

Kommentarer

SpinLock är ett icke-reentrantlås, vilket innebär att om en tråd håller låset, är det inte tillåtet att ange låset igen. Om spårning av trådägarskap är aktiverat (om det är aktiverat är tillgängligt via IsThreadOwnerTrackingEnabled) genereras ett undantag när en tråd försöker ange ett lås som den redan har. Men om spårning av trådägarskap är inaktiverat resulterar försök att ange ett lås som redan finns i ett dödläge.

Om du anropar Exit utan att först ha anropat Enter det interna tillståndet för kan det SpinLock skadas.

Gäller för

Se även