IAsyncDisposable Schnittstelle

Definition

Stellt einen Mechanismus für die asynchrone Freigabe nicht verwalteter Ressourcen bereit.

public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
Abgeleitet

Hinweise

In .NET implementieren Klassen, die nicht verwaltete Ressourcen besitzen, normalerweise die IDisposable -Schnittstelle, um einen Mechanismus zum synchronen Freigeben nicht verwalteter Ressourcen bereitzustellen. In einigen Fällen müssen sie jedoch einen asynchronen Mechanismus zum Freigeben nicht verwalteter Ressourcen zusätzlich zu (oder anstelle) der synchronen Ressourcen bereitstellen. Durch die Bereitstellung eines solchen Mechanismus kann der Consumer ressourcenintensive Dispose-Vorgänge ausführen, ohne den Hauptthread einer GUI-Anwendung für längere Zeit zu blockieren.

Die IAsyncDisposable.DisposeAsync -Methode dieser Schnittstelle gibt einen ValueTask zurück, der den asynchronen Dispose-Vorgang darstellt. Klassen, die nicht verwaltete Ressourcen besitzen, implementieren diese Methode, und der Consumer dieser Klassen ruft diese Methode für ein Objekt auf, wenn es nicht mehr benötigt wird.

Die asynchronen Methoden werden in Verbindung mit den async Schlüsselwörtern und await in C# und Visual Basic verwendet. Weitere Informationen finden Sie unter The Task asynchronous programming model in C# oder Asynchronous Programming with Async and Await (Visual Basic) (Asynchrone Programmierung mit Async und Await (Visual Basic)).

Verwenden eines Objekts, das IAsyncDisposable implementiert

Wenn Ihre Anwendung ein Objekt verwendet, das IAsyncDisposable implementiert, sollten Sie die -Implementierung des Objekts DisposeAsync aufrufen, wenn Sie die Verwendung abgeschlossen haben. Um sicherzustellen, dass Ressourcen auch bei einer Ausnahme freigegeben werden, legen Sie den Code, der das -Objekt verwendet, IAsyncDisposable in die using-Anweisung (in C# ab Version 8.0) ein, oder rufen Sie die DisposeAsync -Methode in einer finally -Klausel der try / finally -Anweisung auf. Weitere Informationen zum try / finally Muster finden Sie unter try-finally (C#) oder Try... Fangen... Finally-Anweisung (Visual Basic).

Implementieren von IAsyncDisposable

Sie können IAsyncDisposable in den folgenden Situationen implementieren:

  • Beim Entwickeln eines asynchronen Enumerators, der nicht verwaltete Ressourcen besitzt. Asynchrone Enumeratoren werden mit der Asynchronen Datenstromfunktion von C# 8.0 verwendet. Weitere Informationen zu asynchronen Streams finden Sie unter Tutorial: Generieren und Nutzen asynchroner Streams mit C# 8.0 und .NET Core 3.0.

  • Wenn Ihre Klasse nicht verwaltete Ressourcen besitzt und diese frei gibt, ist ein ressourcenintensiver E/A-Vorgang erforderlich, z. B. das Leeren des Inhalts eines Zwischenpuffers in eine Datei oder das Senden eines Pakets über ein Netzwerk, um eine Verbindung zu schließen.

Verwenden Sie die -Methode, um nach der Verwendung der nicht verwalteten Ressourcen alle erforderlichen Bereinigungen durchzuführen, z. B. das Freigeben, Freigeben oder Zurücksetzen der nicht verwalteten DisposeAsync Ressourcen. Weitere Informationen finden Sie unter Implementieren einer DisposeAsync-Methode.

Methoden

DisposeAsync()

Führt anwendungsspezifische Aufgaben aus, die mit dem asynchronen Freigeben, Zurückgeben oder Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

Erweiterungsmethoden

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguriert, wie Wartezeiten auf die Aufgaben angewandt werden, die von einem asynchronen verwerfbaren Element zurückgegeben werden.

Gilt für