IAsyncDisposable Rozhraní
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í.
Poskytuje mechanismus pro asynchronní uvolnění nespravovaných prostředků.
public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
- Odvozené
Poznámky
V .NET třídy, které vlastní nespravované prostředky, obvykle implementují IDisposable rozhraní, aby poskytoval mechanismus pro vydávání nespravovaných prostředků synchronně. V některých případech ale musí poskytnout asynchronní mechanismus pro uvolnění nespravovaných prostředků buďto navíc k synchronnímu, nebo místo synchronního. Poskytnutí takového mechanismu umožňuje uživateli provádět operace náročné na zdroje bez blokování hlavního vlákna aplikace grafického uživatelského rozhraní po dlouhou dobu.
Metoda IAsyncDisposable.DisposeAsync tohoto rozhraní vrátí ValueTask, který představuje operaci asynchronního zrušení. Třídy, které vlastní nespravované prostředky, implementují tuto metodu, a uživatel těchto tříd volá tuto metodu na objekt, když už není potřeba.
Asynchronní metody se používají ve spojení s klíčovými slovy async a await v jazyce C# a Visual Basic. Další informace naleznete v tématu Asynchronní programovací model Úlohy v jazyce C# nebo Asynchronní programování pomocí Async a Await (Visual Basic).
Použití objektu, který implementuje IAsyncDisposable
Pokud vaše aplikace používá objekt, který implementuje IAsyncDisposable, měli byste zavolat implementaci objektu DisposeAsync poté, co jej přestanete používat. Pokud chcete zajistit, aby prostředky byly vydány i v případě výjimky, vložte kód, který používá IAsyncDisposable objekt do příkazu using (v jazyce C# počínaje verzí 8.0), nebo volejte DisposeAsync metodu uvnitř finally klauzule try/finally příkazu. Další informace o vzoru najdete v try/finally tématu try-finally (C#) nebo Try... Chytit... Finally – příkaz (Visual Basic).
Implementujte IAsyncDisposable
V následujících situacích můžete implementovat IAsyncDisposable :
- Při vývoji asynchronního enumerátoru, který vlastní nespravované prostředky. Asynchronní enumerátory se používají s funkcí asynchronních datových proudů C# 8.0. Další informace o asynchronních datových proudech najdete v kurzu: Generování a využívání asynchronních datových proudů pomocí C# 8.0 a .NET Core 3.0.
- Pokud vaše třída vlastní nespravované prostředky a uvolní je, vyžaduje vstupně-výstupní operaci náročnou na prostředky, například vyprázdnění obsahu zprostředkující vyrovnávací paměti do souboru nebo odeslání paketu přes síť, aby se připojení zavře.
Použijte metodu DisposeAsync k provedení potřebného úklidu po použití nespravovaných prostředků, jako je uvolnění nebo resetování těchto prostředků. Další informace naleznete v tématu Implementace metody DisposeAsync.
Metody
| Name | Description |
|---|---|
| DisposeAsync() |
Provádí úlohy definované aplikací přidružené k uvolnění, uvolnění nebo resetování nespravovaných prostředků asynchronně. |
Metody rozšíření
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje, jak čekají na úlohy vrácené z asynchronního jednorázového použití. |