IAsyncDisposable Interfaz

Definición

Proporciona un mecanismo para liberar recursos no administrados de forma asincrónica.Provides a mechanism for releasing unmanaged resources asynchronously.

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 IDisposable la interfaz para proporcionar un mecanismo para liberar los recursos no administrados de forma sincrónica.In .NET, classes that own unmanaged resources usually implement the IDisposable interface to provide a mechanism for releasing unmanaged resources synchronously. Sin embargo, en algunos casos, deben proporcionar un mecanismo asincrónico para liberar los recursos no administrados además de (o en lugar de) la sincrónica.However, in some cases they need to provide an asynchronous mechanism for releasing unmanaged resources in addition to (or instead of) the synchronous one. Proporcionar este tipo de mecanismo permite al consumidor realizar operaciones de eliminación que hacen un uso intensivo de recursos sin bloquear el subproceso principal de una aplicación de GUI durante mucho tiempo.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.

El IAsyncDisposable.DisposeAsync método de esta interfaz devuelve un ValueTask que representa la operación de eliminación asincrónica.The IAsyncDisposable.DisposeAsync method of this interface returns a ValueTask that represents the asynchronous dispose operation. 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 se necesita.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.

Los métodos asincrónicos se utilizan junto con las async palabras await clave y C# en y Visual Basic.The async methods are used in conjunction with the async and await keywords in C# and Visual Basic. Para obtener más insformation, vea el modelo de programación asincrónica de C# la tarea en o la programación asincrónica con Async y Await (Visual Basic).For more insformation, see The Task asynchronous programming model in C# or Asynchronous Programming with Async and Await (Visual Basic).

Usar un objeto que implementa IAsyncDisposableUsing an object that implements IAsyncDisposable

Si la aplicación utiliza un objeto que implementa IAsyncDisposable, debe llamar a la implementación del DisposeAsync objeto cuando termine de usarlo.If your application uses an object that implements IAsyncDisposable, you should call the object's DisposeAsync implementation when you are finished using it. Para asegurarse de que los recursos se liberan incluso en caso de una excepción DisposeAsync , llame al finally método dentro de try una cláusula de la / finally instrucción.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. Para obtener más información sobre try el / finally patrón, vea try-finally (C#) o try... Detectar... Instrucción Finally (Visual Basic).For more information about the try/finally pattern, see try-finally (C#) or Try...Catch...Finally Statement (Visual Basic).

Implementación de IAsyncDisposableImplementing IAsyncDisposable

Podría implementar IAsyncDisposable en las siguientes situaciones:You might implement IAsyncDisposable in the following situations:

  • Al desarrollar un enumerador asincrónico que posee recursos no administrados.When developing an asynchronous enumerator that owns unmanaged resources. Los enumeradores asincrónicos se usan con C# la característica de secuencias asincrónicas 8,0.Asynchronous enumerators are used with the C# 8.0 async streams feature. Para obtener más información sobre las secuencias asincrónicas, consulte Tutorial: Genere y consuma secuencias asincrónicas C# con 8,0 y .net Core3,0.For more information about async streams, see Tutorial: Generate and consume async streams using C# 8.0 and .NET Core 3.0.

  • Cuando la clase posee recursos no administrados y los libera, requiere una operación de e/s con un uso intensivo de recursos, como el vaciado del contenido de un búfer intermedio en un archivo o el envío de un paquete a través de una red para cerrar una conexión.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.

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.Use the DisposeAsync method to perform whatever cleanup is necessary after using the unmanaged resources, such as freeing, releasing, or resetting the unmanaged resources. Para obtener más información sobre los recursos no administrados en .NET, vea limpiar recursos no administrados.For more information about unmanaged resources in .NET, see Cleaning Up Unmanaged Resources.

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.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

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.Configures how awaits on the tasks returned from an async disposable are performed.

Se aplica a