C# · Avançado · Inglês · Técnico
IAsyncDisposable
Interface com DisposeAsync para liberar recursos de forma assíncrona, como descarregar buffers ou fechar conexões de rede. É consumida com await using.
Onde usar
Aparece em streams, DbContext e conexões que precisam de I/O ao serem fechadas. Se o tipo implementa as duas interfaces, prefira await using para o fechamento não bloquear a thread.
Em código
await using var e = new Escritor();
class Escritor : IAsyncDisposable
{
public async ValueTask DisposeAsync()
=> await Task.Delay(10);
}Exemplos
Use await using since the type is IAsyncDisposable.
Use await using, já que o tipo é IAsyncDisposable.
DbContext implements IAsyncDisposable too.
O DbContext também implementa IAsyncDisposable.
Cuidado
Não chame Dispose síncrono dentro de DisposeAsync nem bloqueie com .Wait(): isso derrota o propósito da interface.
Antônimos
IDisposable