IAsyncDisposable Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece um mecanismo para liberar recursos não gerenciados de forma assíncrona.
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. No entanto, em alguns casos, eles precisam fornecer um mecanismo assíncrono para liberar recursos não gerenciados além do (ou em vez de) do síncrono. Fornecer esse mecanismo permite que o consumidor execute operações de descarte com uso intensivo de recursos sem bloquear o thread main de um aplicativo gui por um longo tempo.
O IAsyncDisposable.DisposeAsync método dessa interface retorna um ValueTask que representa a operação de descarte assíncrono. 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.
Os métodos assíncronos são usados em conjunto com as async
palavras-chave e await
em C# e Visual Basic. Para obter mais informações, consulte O modelo de programação assíncrona task em C# ou Programação assíncrona com Async e Await (Visual Basic).
Usando um objeto que implementa IAsyncDisposable
Se o aplicativo usar um objeto que implementa IAsyncDisposable
, você deverá chamar a implementação do DisposeAsync objeto quando terminar de usá-lo. Para garantir que os recursos sejam liberados mesmo no caso de uma exceção, coloque o código que usa o IAsyncDisposable
objeto na instrução using (em C# a partir da versão 8.0) ou chame o DisposeAsync método dentro de uma finally
cláusula da try
/finally
instrução . Para obter mais informações sobre o try
/finally
padrão, consulte try-finally (C#) ou Try... Pegar... Instrução Finally (Visual Basic).
Implementando IAsyncDisposable
Você pode implementar IAsyncDisposable
nas seguintes situações:
Ao desenvolver um enumerador assíncrono que possui recursos não gerenciados. Enumeradores assíncronos são usados com o recurso de fluxos assíncronos C# 8.0. Para obter mais informações sobre fluxos assíncronos, consulte Tutorial: Gerar e consumir fluxos assíncronos usando o C# 8.0 e o .NET Core 3.0.
Quando sua classe possui recursos não gerenciados e liberá-los requer uma operação de E/S com uso intensivo 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.
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. Para obter mais informações, consulte Implementar um método DisposeAsync.
Métodos
DisposeAsync() |
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados de forma assíncrona. |
Métodos de Extensão
ConfigureAwait(IAsyncDisposable, Boolean) |
Configura como as esperas nas tarefas retornadas de um descartável assíncrono são realizadas. |
Aplica-se a
Comentários
Enviar e exibir comentários de