IAsyncDisposable Rozhraní

Definice

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í.

Platí pro