言語

AsyncLazy<T>.DisposeValue メソッド

定義

破棄可能な場合は、遅延初期化された値を破棄し、後続のすべての試行で値の取得が失敗します。

public void DisposeValue();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()

注釈

この呼び出しは、値を破棄する最初の呼び出しである場合、破棄をブロックします (既に開始されているが、まだ完了していない場合は、値自体の構築が含まれる可能性があります)。

このメソッドを呼び出すと、このオブジェクトは破棄された状態になり、値を取得するための今後の呼び出しでは ObjectDisposedExceptionがスローされます。

値が既に生成され、 IDisposable または IAsyncDisposableを実装している場合は、破棄されます。 値ファクトリが既に開始されているが、まだ完了していない場合、値ファクトリが完了すると、その値は破棄されます。

このメソッドの呼び出し時に値を取得する前 の呼び 出しが処理中の場合、それらの呼び出しが完了し、呼び出し元が値を取得する可能性がありますが、 Dispose() 値が呼び出されたか、間もなく呼び出され、それらのユーザーに ObjectDisposedExceptionが発生する可能性があります。

IDisposableまたはIAsyncDisposableを実装する値に基づくすべての条件は、T型引数ではなく、実際の値に基づいていることに注意してください。 つまり、 TIFoo ( IDisposableを実装しない) 場合がありますが、 IFoo を実装する具象型は IDisposable 実装でき、前述のように破棄可能なオブジェクトとして扱われます。

適用対象