IAsyncDisposable.DisposeAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.