AsyncReaderWriterLock Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Eşzamanlı erişime, özel erişime veya özel erişime yükseltilebilirlikle eşzamanlı erişime izin veren engelleyici olmayan bir kilit.
public ref class AsyncReaderWriterLock : IDisposable, Microsoft::VisualStudio::Threading::IHangReportContributor
public class AsyncReaderWriterLock : IDisposable, Microsoft.VisualStudio.Threading.IHangReportContributor
type AsyncReaderWriterLock = class
interface IHangReportContributor
interface IDisposable
Public Class AsyncReaderWriterLock
Implements IDisposable, IHangReportContributor
- Devralma
-
AsyncReaderWriterLock
- Türetilmiş
- Uygulamalar
Açıklamalar
CallContext verilerini kilidi alan kişi bağlamında ayarlamamız gerektiğinden yalnızca Task{LockReleaser} öğesini döndürmek yerine özel bir beklenebilir değer kullanmalıyız. Bu, devamın başlangıcında kod yürütmemizi gerektirir (verim olsun veya olmasın).
Oluşturucular
| AsyncReaderWriterLock() |
AsyncReaderWriterLock sınıfının yeni bir örneğini başlatır. |
| AsyncReaderWriterLock(Boolean) |
AsyncReaderWriterLock sınıfının yeni bir örneğini başlatır. |
| AsyncReaderWriterLock(JoinableTaskContext, Boolean) |
AsyncReaderWriterLock sınıfının yeni bir örneğini başlatır. |
Özellikler
| AmbientLock |
Çağıranın yürütme bağlamı tarafından tutulan kilidi alır. |
| CanCurrentThreadHoldActiveLock |
Geçerli iş parçacığının etkin bir kilidi tutmasına izin verilip verilmeyeceğini belirten bir değer alır. |
| CaptureDiagnostics |
Kilitlenmeleri tanılamada yararlı olacak bilgileri toplamak için ek kaynakların harcanıp harcanmayacağını belirten bir değer alır veya ayarlar. |
| Completion |
Tamamlanma sinyalleri bu kilidin artık kilit vermeyeceğini belirten bir görev alır. |
| DeadlockCheckTimeout |
Bekleyen yazıcı kilidinin ve okuyucu kilitlerinin kilitlenme oluşturup oluşturmadığını denetlemek için bir gecikme süresi alır. |
| IsAnyLockHeld |
Çağıran tarafından herhangi bir tür kilidin tutulup tutulmadığını ve çağıranın bağlamı göz önüne alındığında hemen kullanılabileceğini belirten bir değer alır. |
| IsAnyPassiveLockHeld |
Çağıranın bağlamının kilit uyumluluğuna bakılmaksızın çağıran tarafından herhangi bir tür kilidin tutulup tutulmadığını belirten bir değer alır. |
| IsPassiveReadLockHeld |
Çağıranın bağlamının kilit uyumluluğuna bakılmaksızın çağıran tarafından okuma kilidinin tutulup tutulmadığını belirten bir değer alır. |
| IsPassiveUpgradeableReadLockHeld |
Çağıranın bağlamının kilit uyumluluğuna bakılmaksızın çağıran tarafından yükseltilebilir bir okuma kilidinin tutulup tutulmadığını belirten bir değer alır. |
| IsPassiveWriteLockHeld |
Çağıranın bağlamının kilit uyumluluğuna bakılmaksızın çağıran tarafından bir yazma kilidi tutulup tutulmadığını belirten bir değer alır. |
| IsReadLockHeld |
Çağıranın okuma kilidi barındırıp tutmadığını belirten bir değer alır. |
| IsUnsupportedSynchronizationContext |
Geçerli SynchronizationContext değerinin bu kilit tarafından desteklenmeyen bir değer olup olmadığını gösterir. |
| IsUpgradeableReadLockHeld |
Çağıranın yükseltilebilir bir okuma kilidine sahip olup olmadığını belirten bir değer alır. |
| IsWriteLockHeld |
Çağıranın yazma kilidine sahip olup olmadığını belirten bir değer alır. |
| NoMessagePumpSynchronizationContext |
Uygulandığında, çağıran iş parçacığının zaman uyumlu blokları sırasında çalışabilecek tüm ileti pompalarını gizleyen bir SynchronizationContext alır. |
| SyncObject |
Bu örneğin alanlarına erişimi eşitlemek için kullanılan nesneyi alır. |
Yöntemler
| Complete() |
Yeni üst düzey kilit isteklerinin reddedilmesine ve Completion verilen kilitler serbest bırakıldıktan sonra görevin tamamlanmış duruma geçmesine neden olur. |
| Dispose() |
Eşzamanlı erişime, özel erişime veya özel erişime yükseltilebilirlikle eşzamanlı erişime izin veren engelleyici olmayan bir kilit. |
| Dispose(Boolean) |
Bu örnek tarafından tutulan yönetilen ve yönetilmeyen kaynakları atılır. |
| GetAggregateLockFlags() |
Tüm iç içe kilitler için kilit bayraklarının toplamını döndürür. |
| GetHangReport() |
Askıda kalma raporu için verilere katkıda bulunur. |
| GetTaskSchedulerForReadLockRequest() |
Kilit alınırken devamlılığı yürütmek için görev zamanlayıcısını alın. AsyncReaderWriterLock özel kilitleri işlemek için özel SynchronizationContext bir kullanır ve sağlanan görev zamanlayıcıyı yoksayar, bu nedenle bu yalnızca okuma kilidi senaryosunda kullanılır. Bu yöntem, okuma kilidini beklemek için yürütme bağlamı içinde çağrılır, böylece geçerli yürütme bağlamını temel alarak alabilir TaskScheduler . Not: Görev zamanlayıcısı yalnızca kilit daha sonra verildiğinde kullanılır. True döndürdüğünde CanCurrentThreadHoldActiveLock kilit hemen verilirse, yoksayılır. |
| HideLocks() |
Döndürülen değer atılana kadar çağıranın kilitlerinin kullanımını veya görünürlüğünü engeller. |
| LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle) |
Kilit yığınındaki tüm kilitlerden toplanan bayrakların belirtilen bayrakları karşılayıp karşılamadığını denetler. |
| OnBeforeExclusiveLockReleasedAsync() |
Son yazma kilidi serbest bırakılmak üzereyken tetiklenir. |
| OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle) |
Herhangi bir kilit serbest bırakıldığında tetiklenir. |
| OnBeforeWriteLockReleased(Func<Task>) |
Çağıran tarafından tutulan yazma kilidi nihai olarak serbest bırakılmak üzere olduğunda çağrılacak bir geri çağırma kaydeder (en dıştaki yazma kilidi). |
| OnCriticalFailure(Exception) |
Kilit, uygulamaya hemen bildirilmesi gereken ciddi bir kusura işaret eden bir iç hata veya geçersiz kullanım deseni algıladığında çağrılır ve/veya kilitlenmeleri veya veri bozulmasını önlemek için işlemi devre dışı bırakmalıdır. |
| OnCriticalFailure(String) |
Kilit, uygulamaya hemen bildirilmesi gereken ciddi bir kusura işaret eden bir iç hata veya geçersiz kullanım deseni algıladığında çağrılır ve/veya kilitlenmeleri veya veri bozulmasını önlemek için işlemi devre dışı bırakmalıdır. |
| OnExclusiveLockReleasedAsync() |
Özel bir kilit serbest bırakıldıktan sonra ancak herhangi birinin kilidi girme şansı olmadan önce çağrılır. |
| OnUpgradeableReadLockReleased() |
Üst düzey yükseltilebilir okuma kilidi serbest bırakıldığında çağrılır ve hiçbir kilit bırakmaz. |
| ReadLockAsync(CancellationToken) |
Hemen kullanılamıyorsa, zaman uyumsuz olarak kilit için bekleyen bir okuma kilidi alır. |
| UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Hemen kullanılamıyorsa, zaman uyumsuz olarak kilit için bekleyen bir okuma kilidi alır. |
| UpgradeableReadLockAsync(CancellationToken) |
Hemen kullanılabilir değilse, zaman uyumsuz olarak kilit için bekleyen yükseltilebilir bir okuma kilidi alır. |
| WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Hemen kullanılamıyorsa, zaman uyumsuz olarak kilit için bekleyen bir yazma kilidi alır. |
| WriteLockAsync(CancellationToken) |
Hemen kullanılamıyorsa, zaman uyumsuz olarak kilit için bekleyen bir yazma kilidi alır. |
Belirtik Arabirim Kullanımları
| IHangReportContributor.GetHangReport() |
Askıda kalma raporu için verilere katkıda bulunur. |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu tür, tüm üyeler için iş parçacığı güvenlidir.