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 できるように、読み取りロックを待機するために実行コンテキスト内で呼び出されます。 注: タスク スケジューラは、ロックが後で発行された場合にのみ使用されます。 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)

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)

適用対象

スレッド セーフ

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