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 bereitstellen, um nicht verwaltete Ressourcen zusätzlich zu (oder anstelle von) der synchronen Ressourcen freizugeben. Die Bereitstellung eines solchen Mechanismus ermöglicht es dem Consumer, ressourcenintensive Entsorgungsvorgänge durchzuführen, ohne den Hauptthread einer GUI-Anwendung für eine lange Zeit zu blockieren.

Die IAsyncDisposable.DisposeAsync Methode dieser Schnittstelle gibt einen ValueTask zurück, der den asynchronen Entsorgevorgang darstellt. Klassen, die nicht verwaltete Ressourcen besitzen, implementieren diese Methode, und der Consumer dieser Klassen ruft diese Methode für ein Objekt auf, wenn sie 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 Das asynchrone Programmiermodell der Aufgabe in C# oder Asynchrone Programmierung mit Asynchron und Await (Visual Basic).

Verwenden eines Objekts, das IAsyncDisposable implementiert

Wenn Ihre Anwendung ein Objekt verwendet, das implementiert IAsyncDisposable, sollten Sie die Implementierung des DisposeAsync Objekts aufrufen, wenn Sie es verwendet haben. Um sicherzustellen, dass Ressourcen auch im Fall einer Ausnahme freigegeben werden, fügen Sie den Code, der das IAsyncDisposable Objekt verwendet, 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 in den folgenden Situationen implementieren IAsyncDisposable :

  • Bei der Entwicklung eines asynchronen Enumerators, der nicht verwaltete Ressourcen besitzt. Asynchrone Enumeratoren werden mit dem Feature für asynchrone C# 8.0-Datenströme verwendet. Weitere Informationen zu asynchronen Streams finden Sie unter Tutorial: Generieren und Nutzen von asynchronen Streams mit C# 8.0 und .NET Core 3.0.

  • Wenn Ihre Klasse nicht verwaltete Ressourcen besitzt und diese freigeben, 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 DisposeAsync -Methode, um die nach der Verwendung der nicht verwalteten Ressourcen erforderlichen Bereinigungen durchzuführen, z. B. das Freigeben, Freigeben oder Zurücksetzen der nicht verwalteten 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: