IAsyncDisposable Interfaccia

Definizione

Offre un meccanismo per il rilascio asincrono delle risorse non gestite.Provides a mechanism for releasing unmanaged resources asynchronously.

public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
Derivato

Commenti

In .NET, le classi che possiedono risorse non gestite in genere IDisposable implementano l'interfaccia per fornire un meccanismo per rilasciare le risorse non gestite in modo sincrono.In .NET, classes that own unmanaged resources usually implement the IDisposable interface to provide a mechanism for releasing unmanaged resources synchronously. Tuttavia, in alcuni casi è necessario fornire un meccanismo asincrono per rilasciare le risorse non gestite in aggiunta a (o al posto di) quello sincrono.However, in some cases they need to provide an asynchronous mechanism for releasing unmanaged resources in addition to (or instead of) the synchronous one. Fornire un meccanismo di questo tipo consente al consumer di eseguire operazioni di eliminazione a elevato utilizzo di risorse senza bloccare il thread principale di un'applicazione GUI da molto tempo.Providing such a mechanism enables the consumer to perform resource-intensive dispose operations without blocking the main thread of a GUI application for a long time.

Il IAsyncDisposable.DisposeAsync metodo di questa interfaccia restituisce un ValueTask oggetto che rappresenta l'operazione di eliminazione asincrona.The IAsyncDisposable.DisposeAsync method of this interface returns a ValueTask that represents the asynchronous dispose operation. Le classi che possiedono risorse non gestite implementano questo metodo e il consumer di queste classi chiama questo metodo su un oggetto quando non è più necessario.Classes that own unmanaged resources implement this method, and the consumer of these classes calls this method on an object when it is no longer needed.

I metodi asincroni vengono usati insieme async alle parole chiave e await in C# e Visual Basic.The async methods are used in conjunction with the async and await keywords in C# and Visual Basic. Per altre insformation, vedere il modello di programmazione asincrona delle C# attività in o programmazione asincrona con Async e await (Visual Basic).For more insformation, see The Task asynchronous programming model in C# or Asynchronous Programming with Async and Await (Visual Basic).

Uso di un oggetto che implementa IAsyncDisposableUsing an object that implements IAsyncDisposable

Se l'applicazione usa un oggetto che implementa IAsyncDisposable, è necessario chiamare l' DisposeAsync implementazione dell'oggetto al termine dell'uso.If your application uses an object that implements IAsyncDisposable, you should call the object's DisposeAsync implementation when you are finished using it. Per assicurarsi che le risorse vengano rilasciate anche in caso di eccezione, DisposeAsync chiamare il metodo finally all'interno di try una clausola dell' / finally istruzione.To make sure resources are released even in case of an exception, call the DisposeAsync method inside a finally clause of the try/finally statement. Per ulteriori try informazioni sul / finally modello, vedere try-finally (C#) o try... Rileva... Istruzione finally (Visual Basic).For more information about the try/finally pattern, see try-finally (C#) or Try...Catch...Finally Statement (Visual Basic).

Implementazione di IAsyncDisposableImplementing IAsyncDisposable

È possibile implementare IAsyncDisposable nelle situazioni seguenti:You might implement IAsyncDisposable in the following situations:

  • Quando si sviluppa un enumeratore asincrono che possiede risorse non gestite.When developing an asynchronous enumerator that owns unmanaged resources. Gli enumeratori asincroni vengono utilizzati con C# la funzionalità dei flussi asincroni 8,0.Asynchronous enumerators are used with the C# 8.0 async streams feature. Per ulteriori informazioni sui flussi asincroni, vedere esercitazione: Generare e utilizzare flussi asincroni utilizzando C# 8,0 e .net core 3,0.For more information about async streams, see Tutorial: Generate and consume async streams using C# 8.0 and .NET Core 3.0.

  • Quando la classe è proprietaria di risorse non gestite e il relativo rilascio richiede un'operazione di I/O a elevato utilizzo di risorse, ad esempio lo svuotamento del contenuto di un buffer intermedio in un file o l'invio di un pacchetto in una rete per chiudere una connessione.When your class owns unmanaged resources and releasing them requires a resource-intensive I/O operation, such as flushing the contents of an intermediate buffer into a file or sending a packet over a network to close a connection.

Utilizzare il DisposeAsync metodo per eseguire le operazioni di pulizia necessarie dopo l'utilizzo delle risorse non gestite, ad esempio la liberazione, il rilascio o la reimpostazione delle risorse non gestite.Use the DisposeAsync method to perform whatever cleanup is necessary after using the unmanaged resources, such as freeing, releasing, or resetting the unmanaged resources. Per ulteriori informazioni sulle risorse non gestite in .NET, vedere pulizia di risorse non gestite.For more information about unmanaged resources in .NET, see Cleaning Up Unmanaged Resources.

Metodi

DisposeAsync()

Esegue attività definite dall'applicazione, ad esempio libera, rilascia o reimposta risorse non gestite in modo asincrono.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

Metodi di estensione

ConfigureAwait(IAsyncDisposable, Boolean)

Consente di configurare la modalità di esecuzione delle espressioni await per le attività restituite da un elemento disposable asincrono.Configures how awaits on the tasks returned from an async disposable are performed.

Si applica a