AsyncReaderWriterLock 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一種非阻塞鎖,允許同時存取、排他存取,或同時升級至排他存取。
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
- 繼承
-
AsyncReaderWriterLock
- 衍生
- 實作
備註
我們必須使用 custom awaitable,而不是直接回傳 Task{LockReleaser},因為我們必須在接收鎖的使用者上下文中設定 CallContext 資料,這需要我們在繼續開始時執行程式碼(不管我們是否放棄)。
建構函式
| 名稱 | Description |
|---|---|
| AsyncReaderWriterLock() |
初始化 AsyncReaderWriterLock 類別的新執行個體。 |
| AsyncReaderWriterLock(Boolean) |
初始化 AsyncReaderWriterLock 類別的新執行個體。 |
| AsyncReaderWriterLock(JoinableTaskContext, Boolean) |
初始化 AsyncReaderWriterLock 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| AmbientLock |
取得呼叫者執行上下文所持有的鎖。 |
| CanCurrentThreadHoldActiveLock |
會取得一個值,表示目前執行緒是否被允許持有一個主動鎖。 |
| CaptureDiagnostics |
取得或設定一個值,指示是否應該投入額外資源收集有助於診斷僵局等有用的資訊。 |
| Completion |
會收到一個任務,完成後表示這個鎖不會再發鎖。 |
| DeadlockCheckTimeout |
會有一個時間延遲來檢查待處理的寫入鎖定和讀取鎖定是否會形成死結。 |
| IsAnyLockHeld |
會取得一個值,表示呼叫者是否持有任何類型的鎖,並可根據呼叫者的上下文立即使用。 |
| IsAnyPassiveLockHeld |
獲得一個值,指示呼叫者是否持有任何類型的鎖,而不考慮呼叫者上下文的鎖相容性。 |
| IsPassiveReadLockHeld |
會獲得一個值,表示呼叫者是否持有讀取鎖,而不考慮呼叫者上下文的鎖相容性。 |
| IsPassiveUpgradeableReadLockHeld |
會獲得一個值,表示呼叫者是否持有可升級的讀取鎖,而不考慮呼叫者上下文的鎖相容性。 |
| IsPassiveWriteLockHeld |
會取得一個值,表示呼叫者是否持有寫入鎖,而不考慮呼叫者上下文的鎖相容性。 |
| IsReadLockHeld |
會取得一個值,表示呼叫者是否持有讀取鎖。 |
| IsUnsupportedSynchronizationContext |
會取得一個值,表示目前的同步上下文是否不受此鎖支援。 |
| IsUpgradeableReadLockHeld |
會獲得一個值,表示呼叫者是否持有可升級的讀取鎖。 |
| IsWriteLockHeld |
會得到一個值,表示呼叫者是否持有寫入鎖。 |
| NoMessagePumpSynchronizationContext |
會得到一個 SynchronizationContext ,當應用時,會抑制在呼叫執行緒同步區塊中可能執行的任何訊息泵。 |
| SyncObject |
取得用於同步存取此實例欄位的物件。 |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IHangReportContributor.GetHangReport() |
為懸掛報告提供數據。 |
適用於
執行緒安全性
此類型對所有成員皆為執行緒安全。