다음을 통해 공유


IAsyncDisposable.DisposeAsync 메서드

정의

비동기적으로 관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.

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

반환

ValueTask

비동기 삭제 작업을 나타내는 작업입니다.

설명

이 메서드를 사용하여 이 인터페이스를 구현하는 클래스 인스턴스에서 보유한 파일, 스트림 및 핸들과 같은 관리되지 않는 리소스를 비동기적으로 닫거나 해제합니다. 대신 이 메서드를 사용하면 GUI 애플리케이션의 IDisposable.Dispose 주 스레드를 오랫동안 차단하지 않고 리소스 집약적 삭제 작업을 수행할 수 있습니다.

경고

인터페이스를 구현 IAsyncDisposable 하는 클래스를 사용하는 경우 클래스 사용을 마치면 해당 DisposeAsync 구현을 호출해야 합니다. 자세한 내용은 항목의 "IAsyncDisposable을 구현하는 개체 사용" 섹션을 IAsyncDisposable 참조하세요.

이 메서드를 구현할 때 포함된 모든 리소스가 포함 계층 구조를 통해 호출을 전파하여 해제되었는지 확인합니다. 예를 들어 개체 A가 개체 B를 할당하고 개체 B가 개체 C를 할당하는 경우 A의 DisposeAsync 구현은 B를 호출 DisposeAsync 해야 하며, 이 경우 C를 호출 DisposeAsync 해야 합니다. 또한 기본 클래스가 구현IAsyncDisposable하는 DisposeAsync 경우 개체는 기본 클래스의 메서드를 호출해야 합니다.

개체의 DisposeAsync 메서드가 두 번 이상 호출되는 경우 개체는 첫 번째 호출 이후의 모든 호출을 무시하고 성공적으로 완료된 ValueTask호출을 동기적으로 반환해야 합니다. 개체가 메서드를 여러 번 호출하는 경우 예외를 DisposeAsync throw해서는 안됩니다. 리소스가 이미 삭제된 경우 throw할 수 없는 ObjectDisposedException 인스턴스 DisposeAsync 메서드입니다.

적용 대상