IAsyncDisposable.DisposeAsync Método

Definición

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

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

Devoluciones

ValueTask

Tarea que representa la operación de descarte asincrónica.

Comentarios

Use este método para cerrar o liberar de forma asincrónica recursos no administrados, como archivos, secuencias y identificadores mantenidos por una instancia de la clase que implementa esta interfaz. El uso de este método en lugar de IDisposable.Dispose le permite realizar una operación de eliminación intensiva de recursos sin bloquear el subproceso principal de una aplicación de GUI durante mucho tiempo.

Advertencia

Si usa una clase que implementa la IAsyncDisposable interfaz, debe llamar a su DisposeAsync implementación cuando haya terminado de usar la clase . Para obtener más información, vea la sección "Uso de un objeto que implementa IAsyncDisposable" en el IAsyncDisposable tema.

Al implementar este método, asegúrese de que todos los recursos retenidos se liberen propagando la llamada a través de la jerarquía de contención. Por ejemplo, si un objeto A asigna un objeto B y el objeto B asigna un objeto C, la implementación de DisposeAsync A debe llamar a DisposeAsync en B, que a su vez debe llamar a DisposeAsync C. Un objeto también debe llamar al DisposeAsync método de su clase base si la clase base implementa IAsyncDisposable.

Si se llama al método de DisposeAsync un objeto más de una vez, el objeto debe omitir todas las llamadas después de la primera y devolver de forma sincrónica una operación completada ValueTaskcorrectamente. El objeto no debe producir una excepción si se llama a su DisposeAsync método varias veces. Los métodos de instancia distintos DisposeAsync de pueden producir una ObjectDisposedException excepción cuando ya se eliminan los recursos.

Se aplica a