ChangeMonitor.NotifyOnChanged(OnChangedCallback) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コールバックを登録し、依存関係が変化したときに ObjectCache デリゲートを通して OnChangedCallback インスタンスに通知するために、キャッシュの実装側によって呼び出されます。
public:
void NotifyOnChanged(System::Runtime::Caching::OnChangedCallback ^ onChangedCallback);
public void NotifyOnChanged (System.Runtime.Caching.OnChangedCallback onChangedCallback);
member this.NotifyOnChanged : System.Runtime.Caching.OnChangedCallback -> unit
Public Sub NotifyOnChanged (onChangedCallback As OnChangedCallback)
パラメーター
- onChangedCallback
- OnChangedCallback
依存関係が変更されたときに呼び出されるメソッドへの参照。
例外
コールバック メソッドが既に呼び出されています。
onChangedCallback
が null
です。
注釈
キャッシュ実装者は、このメソッドを使用して、変更モニターに自身を接続します。 1 つ以上の変更モニターをキャッシュ項目に関連付ける場合は、設定された変更モニター プロパティを持つインスタンスをキャッシュ項目に渡 CacheItemPolicy します。 変更モニターをサポートするキャッシュ実装者は、 プロパティを反復処理 ChangeMonitors し、見つけた各変更モニターにデリゲートを登録 OnChangedCallback します。
デリゲートには OnChangedCallback 省略可能な状態パラメーターが含まれているため、具象変更モニターの実装ではオプションの状態情報を渡すことができます。 キャッシュ実装者は、カスタム変更モニターがコールバックの一部として渡す状態の種類に対する明示的な依存関係を取得できるかどうかを判断します。
注意
ベース キャッシュ拡張 API には、状態の種類に対する明示的な依存関係の要件はありません。
メソッドの実装では、メソッドの NotifyOnChanged 呼び出し時 NotifyOnChanged にモニターの状態が既に変更されているかどうかを自動的に判断します。 プロパティが HasChanged の場合、メソッドは true
、 メソッドを OnChangedCallback 介して登録されたイベント ハンドラーを自動的に OnChanged 呼び出します。 これは、キャッシュ実装によって変更モニターが作成された時点から、キャッシュ実装がモニターを取得してそれ自体を接続するまでに、基になる監視状態が変更された可能性があるために発生します。 状態が既に変更されている場合、 メソッドに OnChanged 渡されるオブジェクトは です null
。
メソッドは NotifyOnChanged 1 回だけ呼び出すことができます。後続の呼び出しでは例外がスローされます。
注意 (継承者)
依存関係の変更を NotifyOnChanged(OnChangedCallback) 通知するには、 メソッドを呼び出す必要があります。 依存関係の変更が既に発生している場合は、 OnChangedCallback が呼び出されたときにインスタンスが NotifyOnChanged(OnChangedCallback) 呼び出されます。 それ以外の OnChangedCallback 場合、インスタンスは、メソッドが呼び出されたとき OnChanged(Object) 、またはメソッドが呼び出されたときに 1 回呼び出されます。どちらか早い方 Dispose() が発生します。 キャッシュ実装によって提供されるインスタンスは OnChangedCallback キャッシュ エントリを削除する必要があります。キャッシュの呼び出し元から要求された場合は、必要な変更を発生させるか、イベントを元のキャッシュ呼び出し元に更新します。
オブジェクト キャッシュの実装では、依存関係の変更に関連付けられているキャッシュ エントリを削除する必要があります。
適用対象
こちらもご覧ください
.NET