IAsyncDisposable.DisposeAsync Metoda

Definicja

Wykonuje zadania zdefiniowane przez aplikację skojarzone z zwalnianiem, zwalnianiem lub resetowaniem niezarządzanych zasobów asynchronicznie.

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

Zwraca

Zadanie reprezentujące operację usuwania asynchronicznego.

Uwagi

Użyj tej metody, aby asynchronicznie zamknąć lub zwolnić niezarządzane zasoby, takie jak pliki, strumienie i dojścia przechowywane przez wystąpienie klasy, która implementuje ten interfejs. Użycie tej metody zamiast IDisposable.Dispose umożliwia wykonywanie operacji usuwania intensywnie korzystającej z zasobów bez blokowania głównego wątku aplikacji graficznego interfejsu użytkownika przez długi czas.

Warning

Jeśli używasz klasy implementujące IAsyncDisposable interfejs, należy wywołać jej DisposeAsync implementację po zakończeniu korzystania z klasy . Aby uzyskać więcej informacji, zobacz sekcję "Using an object that implements IAsyncDisposable" (Używanie obiektu implementujące interfejs IAsyncDisposable) w temacie IAsyncDisposable .

Podczas implementowania tej metody upewnij się, że wszystkie przechowywane zasoby są zwalniane przez propagowanie wywołania za pośrednictwem hierarchii zawierania. Jeśli na przykład obiekt A przydziela obiekt B, a obiekt B przydziela obiekt C, implementacja DisposeAsync A musi wywołać metodę B, co musi z kolei wywołać DisposeAsync metodę DisposeAsync C. Obiekt musi również wywołać metodę DisposeAsync klasy bazowej, jeśli klasa bazowa implementuje IAsyncDisposableelement .

Jeśli metoda obiektu jest wywoływana DisposeAsync więcej niż raz, obiekt musi zignorować wszystkie wywołania po pierwszym i synchronicznie zwrócić pomyślnie ukończone ValueTask. Obiekt nie może zgłaszać wyjątku, jeśli jego metoda DisposeAsync jest wywoływana wiele razy. Metody wystąpień inne niż DisposeAsync mogą zgłaszać ObjectDisposedException , gdy zasoby są już usuwane.

Dotyczy