IAsyncDisposable Interface

Definição

Fornece um mecanismo para liberar recursos não gerenciados de forma assíncrona.Provides a mechanism for releasing unmanaged resources asynchronously.

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

Comentários

No .net, as classes que possuem recursos não gerenciados geralmente implementam a IDisposable interface para fornecer um mecanismo para liberar recursos não gerenciados de forma síncrona.In .NET, classes that own unmanaged resources usually implement the IDisposable interface to provide a mechanism for releasing unmanaged resources synchronously. No entanto, em alguns casos, eles precisam fornecer um mecanismo assíncrono para liberar recursos não gerenciados além de (ou em vez de) o síncrono.However, in some cases they need to provide an asynchronous mechanism for releasing unmanaged resources in addition to (or instead of) the synchronous one. Fornecer um mecanismo desse tipo permite que o consumidor execute operações de descarte com uso intensivo de recursos sem bloquear o thread principal de um aplicativo de GUI por muito 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.

O IAsyncDisposable.DisposeAsync método dessa interface retorna um ValueTask que representa a operação de descarte assíncrona.The IAsyncDisposable.DisposeAsync method of this interface returns a ValueTask that represents the asynchronous dispose operation. As classes que possuem recursos não gerenciados implementam esse método, e o consumidor dessas classes chama esse método em um objeto quando ele não é mais necessário.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.

Os métodos assíncronos são usados em conjunto com async as await palavras-chave C# e e Visual Basic.The async methods are used in conjunction with the async and await keywords in C# and Visual Basic. Para obter mais insformation, consulte o modelo de programação assíncrona de tarefa em C# ou programação assíncrona com 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).

Usando um objeto que implementa IAsyncDisposableUsing an object that implements IAsyncDisposable

Se seu aplicativo usar um objeto que implementa IAsyncDisposable, você deverá chamar a implementação do DisposeAsync objeto quando terminar de usá-lo.If your application uses an object that implements IAsyncDisposable, you should call the object's DisposeAsync implementation when you are finished using it. Para garantir que os recursos sejam liberados mesmo no caso de uma exceção, DisposeAsync chame o método finally dentro de uma try cláusula da / finally instrução.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 obter mais informações sobre try o / finally padrão, consulte try – finally (C#) ou try... Capturar... Instrução Finally (Visual Basic).For more information about the try/finally pattern, see try-finally (C#) or Try...Catch...Finally Statement (Visual Basic).

Implementando IAsyncDisposableImplementing IAsyncDisposable

Você pode implementar IAsyncDisposable nas seguintes situações:You might implement IAsyncDisposable in the following situations:

  • Ao desenvolver um enumerador assíncrono que possui recursos não gerenciados.When developing an asynchronous enumerator that owns unmanaged resources. Enumeradores assíncronos são usados com C# o recurso de fluxos assíncronos 8,0.Asynchronous enumerators are used with the C# 8.0 async streams feature. Para obter mais informações sobre fluxos assíncronos , consulte Tutorial: Gerar e consumir fluxos assíncronos C# usando o 8,0 e o.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 sua classe possui recursos não gerenciados e liberá-los requer uma operação de e/s intensiva de recursos, como liberar o conteúdo de um buffer intermediário em um arquivo ou enviar um pacote por uma rede para fechar uma conexão.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 o DisposeAsync método para executar qualquer limpeza necessária depois de usar os recursos não gerenciados, como liberar, liberar ou redefinir os recursos não gerenciados.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 obter mais informações sobre recursos não gerenciados no .NET, consulte limpando recursos não gerenciados.For more information about unmanaged resources in .NET, see Cleaning Up Unmanaged Resources.

Métodos

DisposeAsync()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados de forma assíncrona.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

Métodos de Extensão

ConfigureAwait(IAsyncDisposable, Boolean)

Configura como as esperas nas tarefas retornadas de um descartável assíncrono são realizadas.Configures how awaits on the tasks returned from an async disposable are performed.

Aplica-se a