IAsyncDisposable.DisposeAsync Método
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.
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados de forma assíncrona.
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
Retornos
Uma tarefa que representa a operação de descarte assíncrona.
Comentários
Use esse método para fechar ou liberar de forma assíncrona recursos não gerenciados, como arquivos, fluxos e identificadores mantidos por uma instância da classe que implementa essa interface. Usar esse método em vez de IDisposable.Dispose permite que você execute uma operação de descarte com uso intensivo de recursos sem bloquear o thread principal de um aplicativo de GUI por muito tempo.
Aviso
Se você estiver usando uma classe que implementa a IAsyncDisposable interface , chame sua DisposeAsync
implementação quando terminar de usar a classe . Para obter mais informações, confira a seção "Como usar um objeto que implementa IAsyncDisposable" no IAsyncDisposable tópico.
Ao implementar esse método, verifique se todos os recursos mantidos são liberados propagando a chamada por meio da hierarquia de contenção. Por exemplo, se um objeto A alocar um objeto B e o objeto B alocar um objeto C, a implementação de DisposeAsync
A deverá chamar DisposeAsync
em B, que, por sua vez, deverá chamar DisposeAsync
em C. Um objeto também deve chamar o DisposeAsync
método de sua classe base se a classe base implementar IAsyncDisposable.
Se o método de DisposeAsync
um objeto for chamado mais de uma vez, o objeto deverá ignorar todas as chamadas após a primeira e retornar de forma síncrona um concluído com êxito ValueTask. O objeto não deverá gerar uma exceção se seu DisposeAsync
método for chamado várias vezes. Métodos de instância diferentes de DisposeAsync
podem gerar um ObjectDisposedException quando os recursos já estão descartados.