IAsyncDisposable.DisposeAsync 方法

定義

非同步執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之由應用程式定義的工作。

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

傳回

代表非同步處署作業的工作。

備註

使用這個方法,以非同步方式關閉或釋放 Unmanaged 資源,例如實作此介面的 類別實例所持有的檔案、資料流程和控制碼。 使用此方法,而不是 IDisposable.Dispose 讓您執行需要大量資源的處置作業,而不會長時間封鎖 GUI 應用程式的主要執行緒。

警告

如果您使用實作 介面的 IAsyncDisposable 類別,您應該在使用 類別完成時呼叫其 DisposeAsync 實作。 For more information, see the "Using an object that implements IAsyncDisposable" section in the IAsyncDisposable topic.

實作此方法時,請確定透過內含專案階層傳播呼叫,以釋放所有保留的資源。 例如,如果物件 A 設定物件 B,而物件 B 會設定物件 C,則 A 的 DisposeAsync 實作必須在 B 上呼叫 DisposeAsync ,而該實作必須在 C 上呼叫 DisposeAsync 。如果基類實作 IAsyncDisposableDisposeAsync 物件也必須呼叫其基類的 方法。

如果呼叫物件的 DisposeAsync 方法多次,物件必須在第一個呼叫之後忽略所有呼叫,並同步傳回成功完成 ValueTask 的 。 如果呼叫物件的 DisposeAsync 方法多次,則物件不得擲回例外狀況。 以外的 DisposeAsync 實例方法可以在資源已處置時擲回 ObjectDisposedException

適用於