IAsyncDisposable.DisposeAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アンマネージ リソースの非同期の解放およびリセットに関連付けられているアプリケーション定義のタスクを実行します。
public:
System::Threading::Tasks::ValueTask DisposeAsync();
public System.Threading.Tasks.ValueTask DisposeAsync ();
abstract member DisposeAsync : unit -> System.Threading.Tasks.ValueTask
Public Function DisposeAsync () As ValueTask
戻り値
非同期の破棄操作を表すタスク。
注釈
このメソッドを使用して、このインターフェイスを実装するクラスのインスタンスによって保持されているファイル、ストリーム、ハンドルなどのアンマネージ リソースを非同期的に閉じるか解放します。 代わりにこのメソッドを使用すると、GUI アプリケーションの IDisposable.Dispose メイン スレッドを長時間ブロックすることなく、リソースを大量に消費する破棄操作を実行できます。
警告
IAsyncDisposableインターフェイスを実装するクラスを使用している場合は、クラスの使用が終了したら、そのDisposeAsync
実装を呼び出す必要があります。 詳細については、トピックの「IAsyncDisposable を実装するオブジェクトの使用」セクションを IAsyncDisposable 参照してください。
このメソッドを実装する場合は、包含階層を介して呼び出しを伝達することで、保持されているすべてのリソースが解放されていることを確認します。 たとえば、オブジェクト A がオブジェクト B を割り当て、オブジェクト B がオブジェクト C を割り当てる場合、A の DisposeAsync
実装は B を呼び出す DisposeAsync
必要があり、C を呼び出す DisposeAsync
必要があります。基底クラスが実装されている DisposeAsync
場合、オブジェクトはその基底クラスのメソッドも呼び出す IAsyncDisposable必要があります。
オブジェクトの DisposeAsync
メソッドが複数回呼び出される場合、オブジェクトは最初のメソッドの後のすべての呼び出しを無視し、正常に完了した ValueTask呼び出しを同期的に返す必要があります。 メソッドが複数回呼び出される場合、オブジェクトは例外を DisposeAsync
スローしないでください。 リソースが既に破棄されている場合、DisposeAsync
以外のインスタンスメソッドはObjectDisposedExceptionをスローする可能性があります。