Auf Englisch lesen

Freigeben über


IAsyncDisposable.DisposeAsync Methode

Definition

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

public System.Threading.Tasks.ValueTask DisposeAsync ();

Gibt zurück

Eine Aufgabe, die den asynchronen Löschvorgang darstellt.

Hinweise

Verwenden Sie diese Methode, um nicht verwaltete Ressourcen wie Dateien, Streams und Handles, die von einer Instanz der -Klasse gespeichert werden, die diese Schnittstelle implementiert, asynchron zu schließen oder freizugeben. Wenn Sie diese Methode anstelle von verwenden, IDisposable.Dispose können Sie einen ressourcenintensiven Dispose-Vorgang ausführen, ohne den Hauptthread einer GUI-Anwendung für einen längeren Zeitraum zu blockieren.

Warnung

Wenn Sie eine Klasse verwenden, die die IAsyncDisposable -Schnittstelle implementiert, sollten Sie deren DisposeAsync Implementierung aufrufen, wenn Sie mit der Verwendung der -Klasse fertig sind. Weitere Informationen finden Sie im Abschnitt "Verwenden eines Objekts, das IAsyncDisposable implementiert" im IAsyncDisposable Thema.

Stellen Sie bei der Implementierung dieser Methode sicher, dass alle gehaltenen Ressourcen freigegeben werden, indem Sie den Aufruf über die Einschlusshierarchie weitergeben. Wenn beispielsweise ein Objekt A ein Objekt B zuordnet und Objekt B ein Objekt C zuordnet, muss die Implementierung von DisposeAsync A auf B aufrufen DisposeAsync , wodurch wiederum C aufgerufen DisposeAsync werden muss. Ein -Objekt muss auch die DisposeAsync -Methode seiner Basisklasse aufrufen, wenn die Basisklasse implementiert IAsyncDisposable.

Wenn die DisposeAsync Methode eines Objekts mehr als einmal aufgerufen wird, muss das Objekt alle Aufrufe nach dem ersten ignorieren und synchron einen erfolgreich abgeschlossenen ValueTaskzurückgeben. Das -Objekt darf keine Ausnahme auslösen, wenn seine DisposeAsync Methode mehrmals aufgerufen wird. Andere Instanzmethoden als DisposeAsync können eine ObjectDisposedException auslösen, wenn Ressourcen bereits verworfen sind.

Gilt für:

Produkt Versionen
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.0 (package-provided), 2.1