IAsyncDisposable.DisposeAsync Metodo

Definizione

Esegue attività definite dall'applicazione, ad esempio libera, rilascia o reimposta risorse non gestite in modo asincrono.

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

Restituisce

Attività che rappresenta l'operazione di eliminazione asincrona.

Commenti

Usare questo metodo per chiudere o rilasciare in modo asincrono risorse non gestite, ad esempio file, flussi e handle contenuti in un'istanza della classe che implementa questa interfaccia. L'uso di questo metodo invece di consente di eseguire un'operazione di eliminazione a elevato utilizzo di IDisposable.Dispose risorse senza bloccare il thread principale di un'applicazione GUI per molto tempo.

Avviso

Se si usa una classe che implementa l'interfaccia IAsyncDisposable , è necessario chiamare la relativa DisposeAsync implementazione al termine dell'uso della classe . Per altre informazioni, vedere la sezione "Uso di un oggetto che implementa IAsyncDisposable" nell'argomento IAsyncDisposable .

Quando si implementa questo metodo, assicurarsi che tutte le risorse mantenute vengano liberate propagando la chiamata attraverso la gerarchia di contenimento. Ad esempio, se un oggetto A alloca un oggetto B e l'oggetto B alloca un oggetto C, l'implementazione di DisposeAsync A deve chiamare su B, che deve a sua volta chiamare DisposeAsyncDisposeAsync su C. Un oggetto deve anche chiamare il DisposeAsync metodo della relativa classe di base se la classe di base implementa IAsyncDisposable.

Se il metodo di DisposeAsync un oggetto viene chiamato più volte, l'oggetto deve ignorare tutte le chiamate dopo la prima e restituire in modo sincrono un oggetto completato ValueTaskcorrettamente. L'oggetto non deve generare un'eccezione se il metodo DisposeAsync viene chiamato più volte. I metodi di istanza diversi da DisposeAsync possono generare un'eccezione ObjectDisposedException quando le risorse sono già eliminate.

Si applica a

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