Sdílet prostřednictvím


IAsyncDisposable.DisposeAsync Metoda

Definice

Provádí úlohy definované aplikací spojené s uvolněním, uvolněním nebo resetováním nespravovaných prostředků asynchronně.

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

Návraty

Úloha, která představuje asynchronní operaci dispose.

Poznámky

Tuto metodu použijte k asynchronnímu zavření nebo uvolnění nespravovaných prostředků, jako jsou soubory, datové proudy a popisovače uchovávané instancí třídy, která implementuje toto rozhraní. Použití této metody místo IDisposable.Dispose umožňuje provést operaci dispose náročné na prostředky bez blokování hlavní vlákno aplikace GUI po dlouhou dobu.

Upozornění

Pokud používáte třídu, která implementuje IAsyncDisposable rozhraní, měli byste po dokončení používání třídy volat její DisposeAsync implementaci. Další informace najdete v části "Použití objektu, který implementuje IAsyncDisposable" v tomto IAsyncDisposable tématu.

Při implementaci této metody se ujistěte, že všechny uchovávané prostředky jsou uvolněny šířením volání prostřednictvím hierarchie zahrnutí. Pokud například objekt A přidělí objekt B a objekt B přidělí objekt C, pak implementace A DisposeAsync musí volat DisposeAsync na B, který musí zase volat DisposeAsync na C. Objekt musí také volat metodu DisposeAsync své základní třídy, pokud základní třída implementuje IAsyncDisposable.

Pokud je metoda objektu DisposeAsync volána více než jednou, musí objekt ignorovat všechna volání po prvním a synchronně vrátit úspěšně dokončený ValueTask. Objekt nesmí vyvolat výjimku, pokud je jeho DisposeAsync metoda volána vícekrát. Jiné metody instance než DisposeAsync mohou vyvolat výjimku , ObjectDisposedException pokud jsou prostředky již uvolněny.

Platí pro