ExpertiDict

C# · Avançado · Inglês · Técnico

IAsyncDisposable

/ˌaɪ əˈsɪŋk dɪˈspoʊzəbəl/substantivo

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

Veja também

Todos os termos de C#