IAsyncDisposable Interfaz

Definición

Proporciona un mecanismo para liberar recursos no administrados de forma asincrónica.

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

Comentarios

En .NET, las clases que poseen recursos no administrados suelen implementar la IDisposable interfaz para proporcionar un mecanismo para liberar recursos no administrados de forma sincrónica. Sin embargo, en algunos casos deben proporcionar un mecanismo asincrónico para liberar recursos no administrados además de (o en lugar de) el sincrónico. Proporcionar este mecanismo permite al consumidor realizar operaciones de eliminación intensivas de recursos sin bloquear el subproceso principal de una aplicación de GUI durante mucho tiempo.

El IAsyncDisposable.DisposeAsync método de esta interfaz devuelve un ValueTask objeto que representa la operación de eliminación asincrónica. Las clases que poseen recursos no administrados implementan este método y el consumidor de estas clases llama a este método en un objeto cuando ya no es necesario.

Los métodos asincrónicos se usan junto con las async palabras clave y await en C# y Visual Basic. Para obtener más información, vea El modelo de programación asincrónica de tareas en C# o programación asincrónica con Async y Await (Visual Basic).

Uso de un objeto que implementa IAsyncDisposable

Si la aplicación usa un objeto que implementa IAsyncDisposable, debe llamar a la implementación del DisposeAsync objeto cuando haya terminado de usarlo. Para asegurarse de que los recursos se liberan incluso en caso de excepción, coloque el código que usa el IAsyncDisposable objeto en la instrucción using (en C# a partir de la versión 8.0) o llame al DisposeAsync método dentro de una finally cláusula de la try/finally instrucción . Para obtener más información sobre el try/finally patrón, vea try-finally (C#) o Try... Atrapar... Finally (instrucción) (Visual Basic).

Implementación de IAsyncDisposable

Puede implementar IAsyncDisposable en las situaciones siguientes:

  • Al desarrollar un enumerador asincrónico que posee recursos no administrados. Los enumeradores asincrónicos se usan con la característica secuencias asincrónicas de C# 8.0. Para obtener más información sobre las secuencias asincrónicas, consulte Tutorial: Generación y consumo de secuencias asincrónicas mediante C# 8.0 y .NET Core 3.0.

  • Cuando su clase posee recursos no administrados y los libera requiere una operación de E/S intensiva de recursos, como vaciar el contenido de un búfer intermedio en un archivo o enviar un paquete a través de una red para cerrar una conexión.

Use el DisposeAsync método para realizar cualquier limpieza necesaria después de usar los recursos no administrados, como liberar, liberar o restablecer los recursos no administrados. Para obtener más información, vea Implementar un método DisposeAsync.

Métodos

DisposeAsync()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados de forma asincrónica.

Métodos de extensión

ConfigureAwait(IAsyncDisposable, Boolean)

Configura la forma en la que se realizan las expresiones await en las tareas devueltas desde un elemento asincrónico descartable.

Se aplica a