IAsyncDisposable.DisposeAsync Metodo
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Esegue attività definite dall'applicazione, ad esempio libera, rilascia o reimposta risorse non gestite in modo asincrono.
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
Attività che rappresenta l'operazione di eliminazione asincrona.
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 DisposeAsync
DisposeAsync
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.
Prodotto | Versioni |
---|---|
.NET | Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Standard | 2.0 (package-provided), 2.1 |
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: