IAsyncDisposable.DisposeAsync Methode

Definition

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen asynchron verknüpft sind.

public:
 System::Threading::Tasks::ValueTask DisposeAsync();
public System.Threading.Tasks.ValueTask DisposeAsync();
abstract member DisposeAsync : unit -> System.Threading.Tasks.ValueTask
Public Function DisposeAsync () As ValueTask

Gibt zurück

Eine Aufgabe, die den asynchronen Dispose-Vorgang darstellt.

Hinweise

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

Warning

Wenn Sie eine Klasse verwenden, die die IAsyncDisposable Schnittstelle implementiert, sollten Sie die DisposeAsync Implementierung aufrufen, wenn Sie die Verwendung der Klasse abgeschlossen haben. Weitere Informationen finden Sie im Abschnitt IAsyncDisposable "Verwenden eines Objekts, das IAsyncDisposable implementiert".

Stellen Sie bei der Implementierung dieser Methode sicher, dass alle gehaltenen Ressourcen freigegeben werden, indem Sie den Aufruf über die Eindämmungshierarchie verteilen. Wenn z. B. ein Objekt A ein Objekt B zuweist und Objekt B ein Objekt C zuweist, muss die Implementierung von DisposeAsync A B aufrufen DisposeAsync , was wiederum C aufruft DisposeAsync . Ein Objekt muss auch die DisposeAsync Methode der Basisklasse aufrufen, wenn die Basisklasse implementiert IAsyncDisposablewird.

Wenn die Methode eines Objekts DisposeAsync mehrmals aufgerufen wird, muss das Objekt alle Aufrufe nach dem ersten ignorieren und eine erfolgreich abgeschlossene ValueTaskMethode synchron zurückgeben. Das Objekt darf keine Ausnahme auslösen, wenn seine DisposeAsync-Methode mehrmals aufgerufen wird. Instanzmethoden, die nicht DisposeAsync ausgelöst ObjectDisposedException werden können, wenn Ressourcen bereits verworfen werden.

Gilt für: