IAsyncDisposable.DisposeAsync Metodo

Definizione

Esegue attività definite dall'applicazione associate alla liberazione, al rilascio o alla reimpostazione asincrona delle risorse non gestite.

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

Valori restituiti

Attività che rappresenta l'operazione dispose asincrona.

Commenti

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

Avvertimento

Se si usa una classe che implementa l'interfaccia , è necessario chiamarne IAsyncDisposable l'implementazione DisposeAsync 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 base se la classe 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à state eliminate.

Si applica a