IAsyncDisposable.DisposeAsync Método

Definição

Realiza tarefas definidas pela aplicação associadas à libertação, libertação ou reinício de recursos não geridos 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

Devoluções

Uma tarefa que representa a operação de descarte assíncrona.

Observações

Use este método para fechar ou libertar de forma assíncrona recursos não geridos, como ficheiros, fluxos e handles detidos por uma instância da classe que implementa esta interface. Usar este método permite-lhe IDisposable.Dispose realizar uma operação de eliminação intensiva em recursos sem bloquear o thread principal de uma aplicação GUI durante muito tempo.

Warning

Se estiveres a usar uma classe que implementa a IAsyncDisposable interface, deves chamar a sua DisposeAsync implementação quando terminares de usar a classe. Para mais informações, consulte a secção "Usar um objeto que implementa IAsyncDisposable" no IAsyncDisposable tópico.

Ao implementar este método, certifique-se de que todos os recursos detidos são libertados, propagando a chamada através da hierarquia de contenção. Por exemplo, se um objeto A aloca um objeto B, e o objeto B aloca um objeto C, então a implementação de DisposeAsync A deve invocar DisposeAsync B, que por sua vez deve chamar DisposeAsync C. Um objeto deve também chamar o DisposeAsync método da sua classe base se a classe base implementar IAsyncDisposable.

Se o DisposeAsync método de um objeto for chamado mais do que uma vez, o objeto deve ignorar todas as chamadas após a primeira e devolver síncronicamente um .ValueTask O objeto não deve lançar uma exceção se seu método DisposeAsync for chamado várias vezes. Métodos de instância diferentes de DisposeAsync podem lançar um ObjectDisposedException quando os recursos já estão disponíveis.

Aplica-se a