共用方式為


AsyncReaderWriterResourceLock<TMoniker,TResource> 類別

定義

未封鎖的鎖定,這種鎖定特別考量必須為並行或獨佔存取準備的資源,而允許並行存取、獨佔存取或者可升級為獨佔存取的並行存取。

generic <typename TMoniker, typename TResource>
 where TResource : classpublic ref class AsyncReaderWriterResourceLock abstract : Microsoft::VisualStudio::Threading::AsyncReaderWriterLock
public abstract class AsyncReaderWriterResourceLock<TMoniker,TResource> : Microsoft.VisualStudio.Threading.AsyncReaderWriterLock where TResource : class
type AsyncReaderWriterResourceLock<'Moniker, 'Resource (requires 'Resource : null)> = class
    inherit AsyncReaderWriterLock
Public MustInherit Class AsyncReaderWriterResourceLock(Of TMoniker, TResource)
Inherits AsyncReaderWriterLock

類型參數

TMoniker

識別資源的Moniker類型。

TResource

此鎖定針對存取所發出的資源類型。

繼承
AsyncReaderWriterResourceLock<TMoniker,TResource>

建構函式

AsyncReaderWriterResourceLock<TMoniker,TResource>()

初始化 AsyncReaderWriterResourceLock<TMoniker,TResource> 類別的新執行個體。

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

初始化 AsyncReaderWriterResourceLock<TMoniker,TResource> 類別的新執行個體。

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

初始化 AsyncReaderWriterResourceLock<TMoniker,TResource> 類別的新執行個體。

屬性

AmbientLock

取得呼叫端的執行內容所保留的鎖定。

(繼承來源 AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

取得值,指出是否允許目前線程保存使用中鎖定。

(繼承來源 AsyncReaderWriterLock)
CaptureDiagnostics

取得或設定值,指出是否應該花費額外的資源來收集有助於診斷死結等的資訊。

(繼承來源 AsyncReaderWriterLock)
Completion

取得工作,其完成表示這個鎖定將不再發出鎖定。

(繼承來源 AsyncReaderWriterLock)
DeadlockCheckTimeout

取得檢查擱置寫入器鎖定和讀取器鎖定是否形成死結的時間延遲。

(繼承來源 AsyncReaderWriterLock)
IsAnyLockHeld

取得值,指出呼叫端是否持有任何類型的鎖定,而且可以在呼叫端的內容下立即使用。

(繼承來源 AsyncReaderWriterLock)
IsAnyPassiveLockHeld

取得值,指出呼叫端是否保留任何類型的鎖定,而不考慮呼叫端內容的鎖定相容性。

(繼承來源 AsyncReaderWriterLock)
IsPassiveReadLockHeld

取得值,指出呼叫端是否保留讀取鎖定,而不考慮呼叫端內容的鎖定相容性。

(繼承來源 AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

取得值,指出呼叫端是否保留可升級的讀取鎖定,而不考慮呼叫端內容的鎖定相容性。

(繼承來源 AsyncReaderWriterLock)
IsPassiveWriteLockHeld

取得值,指出呼叫端是否保留寫入鎖定,而不考慮呼叫端內容的鎖定相容性。

(繼承來源 AsyncReaderWriterLock)
IsReadLockHeld

取得值,指出呼叫端是否保留讀取鎖定。

(繼承來源 AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

取得值,指出目前的 SynchronizationContext 是否為此鎖定不支援的值。

(繼承來源 AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

取得值,指出呼叫端是否保留可升級的讀取鎖定。

(繼承來源 AsyncReaderWriterLock)
IsWriteLockHeld

取得值,指出呼叫端是否保留寫入鎖定。

(繼承來源 AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

取得 , SynchronizationContext 套用時會隱藏在呼叫線程同步區塊期間可能執行的任何訊息幫浦。

(繼承來源 AsyncReaderWriterLock)
SyncObject

取得對象,這個物件用來同步存取這個實例的欄位。

(繼承來源 AsyncReaderWriterLock)

方法

Complete()

造成新的最上層鎖定要求遭到拒絕,並造成 Completion 工作在所有發出的鎖定都已解除之後轉換至已完成狀態。

(繼承來源 AsyncReaderWriterLock)
Dispose()

未封鎖的鎖定,這種鎖定特別考量必須為並行或獨佔存取準備的資源,而允許並行存取、獨佔存取或者可升級為獨佔存取的並行存取。

(繼承來源 AsyncReaderWriterLock)
Dispose(Boolean)

處置此實例所持有的Managed和Unmanaged資源。

(繼承來源 AsyncReaderWriterLock)
GetAggregateLockFlags()

傳回所有巢狀鎖定的鎖定旗標彙總。

GetHangReport()

提供用於懸置狀況報表的資料。

(繼承來源 AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

使用指定的Moniker擷取資源。

GetTaskSchedulerForReadLockRequest()

取得工作排程器,以在取得鎖定時執行接續。 AsyncReaderWriterLock 使用特殊 SynchronizationContext 來處理獨佔鎖定,而且會忽略所提供的工作排程器,因此這隻適用於讀取鎖定案例。 這個方法會在執行內容內呼叫以等候讀取鎖定,以便根據目前的執行內容來 TaskScheduler 挑選。 注意:只有在稍後發出鎖定時,才會使用工作排程器。 如果鎖定會在傳回 true 時 CanCurrentThreadHoldActiveLock 立即發出,則會予以忽略。

(繼承來源 AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

取得工作排程器,以準備資源以進行並行存取。

HideLocks()

防止使用或顯示呼叫端鎖定,直到傳回的值已處置為止。

(繼承來源 AsyncReaderWriterLock)
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle)

檢查鎖定堆疊中所有鎖定的匯總旗標是否符合指定的旗標 () 。

(繼承來源 AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

即將釋放最後一個寫入鎖定時引發。

(繼承來源 AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

釋放任何鎖定時引發。

(繼承來源 AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

註冊呼叫端所持有的寫入鎖定即將釋放 (最外層寫入鎖定) 時叫用的回呼。

(繼承來源 AsyncReaderWriterLock)
OnCriticalFailure(Exception)

當鎖定偵測到內部錯誤或不合法的使用模式時叫用,指出應立即向應用程式回報的嚴重瑕疵,以及/或關閉進程,以避免停止回應或數據損毀。

(繼承來源 AsyncReaderWriterLock)
OnCriticalFailure(String)

當鎖定偵測到內部錯誤或不合法的使用模式時叫用,指出應立即向應用程式回報的嚴重瑕疵,以及/或關閉進程,以避免停止回應或數據損毀。

(繼承來源 AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

在釋放獨佔鎖定之後叫用,但在任何人有機會進入鎖定之前叫用。

OnUpgradeableReadLockReleased()

在釋放最上層可升級的讀取鎖定時叫用,不保留剩餘 (寫入) 鎖定。

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

準備供並行存取的資源。

PrepareResourceForExclusiveAccessAsync(TResource, AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

準備由一個執行緒存取的資源。

ReadLockAsync(CancellationToken)

取得讀取鎖定,如果無法立即取得鎖定,則以非同步方式等候鎖定。

SetAllResourcesToUnknownState()

設定所有要視為處於未知狀態的資源。

SetResourceAsAccessed(Func<TResource,Object,Boolean>, Object)

如果資源滿足某些述詞,則會將任何已載入的資源標示為在鎖定下擷取。

SetResourceAsAccessed(TResource)

將資源標記為已在鎖定下被擷取。

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

取得讀取鎖定,如果無法立即取得鎖定,則以非同步方式等候鎖定。

(繼承來源 AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

取得讀取鎖定,如果無法立即取得鎖定,則以非同步方式等候鎖定。

UpgradeableReadLockAsync(CancellationToken)

取得可升級的讀取鎖定,如果鎖定無法立即使用,則以異步方式等候鎖定。

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

取得寫入鎖定,如果無法立即取得鎖定,則以非同步方式等候鎖定。

(繼承來源 AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

取得寫入鎖定,如果無法立即取得鎖定,則以非同步方式等候鎖定。

WriteLockAsync(CancellationToken)

取得寫入鎖定,如果無法立即取得鎖定,則以非同步方式等候鎖定。

明確介面實作

IHangReportContributor.GetHangReport()

提供用於懸置狀況報表的資料。

(繼承來源 AsyncReaderWriterLock)

適用於

執行緒安全性

此類型適用於所有成員的線程安全。