Aracılığıyla paylaş


SpinLock.Enter(Boolean) Yöntem

Tanım

Kilidi güvenilir bir şekilde alır, böylece yöntem çağrısında bir özel durum oluşsa bile, lockTaken kilidin alınıp alınmadığını belirlemek için güvenilir bir şekilde incelenebilir.

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

Parametreler

lockTaken
Boolean

Kilit alınırsa true; aksi takdirde false. lockTaken bu yöntemi çağırmadan önce false olarak başlatılmalıdır.

Özel durumlar

lockTaken Bağımsız değişken, Enter çağrılmadan önce false olarak başlatılmalıdır.

İş parçacığı sahipliğini izleme etkinleştirildi ve geçerli iş parçacığı bu kilidi zaten aldı.

Açıklamalar

SpinLock yeniden giriş yapmayan bir kilittir; başka bir deyişle, bir iş parçacığı kilidi tutarsa, kilidi yeniden girmesine izin verilmez. İş parçacığı sahipliğini izleme etkinse (etkinleştirilip etkinleştirilmediği aracılığıyla kullanılabilir IsThreadOwnerTrackingEnabled), bir iş parçacığı zaten barındırdığı bir kilidi yeniden girmeye çalıştığında bir özel durum oluşturulur. Ancak, iş parçacığı sahipliği izleme devre dışı bırakılırsa, zaten tutulan bir kilit girmeye çalışmak kilitlenmeye neden olur.

önce çağrısı Enter yapmadan çağrısı Exit yaparsanız iç durumu SpinLock bozulabilir.

Şunlara uygulanır

Ayrıca bkz.