言語

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

リソースを識別するモニカーの型。

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)

このインスタンスによって保持されているマネージド リソースとアンマネージド リソースを破棄します。

(継承元 AsyncReaderWriterLock)
GetAggregateLockFlags()

入れ子になったすべてのロックのロック フラグの集計を返します。

GetHangReport()

ハング レポートのデータを提供します。

(継承元 AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

指定したモニカーを使用してリソースを取得します。

GetTaskSchedulerForReadLockRequest()

ロックが取得されたときに継続を実行するタスク スケジューラを取得します。 AsyncReaderWriterLock は特別な SynchronizationContext を使用して排他ロックを処理し、指定されたタスク スケジューラを無視するため、これは読み取りロックシナリオでのみ使用されます。 このメソッドは、現在の実行コンテキストに基づいて TaskScheduler を取得できるように、読み取りロックを待機するために実行コンテキスト内で呼び出されます。 注: タスク スケジューラは、ロックが後で発行されたときにのみ使用されます。 CanCurrentThreadHoldActiveLockが true を返したときにすぐにロックが発行された場合、ロックは無視されます。

(継承元 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)

1 つのスレッドでアクセスするためのリソースを準備します。

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)

適用対象

スレッド セーフ

この型は、すべてのメンバーに対してスレッド セーフです。