내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

IDisposable.Dispose 메서드

2013-12-13

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 응용프로그램 정의 작업을 수행합니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

‘선언
Sub Dispose

이 인터페이스를 구현하는 클래스의 인스턴스에서 보유하는 파일, 스트림 및 핸들 등과 같은 관리되지 않는 리소스를 닫거나 해제하려면 이 메서드를 사용합니다. 일반적으로 이 메서드는 개체가 보유하는 리소스를 해제하거나 개체를 다시 사용하기 위해 준비하는 데 관련된 모든 작업에 사용됩니다.

이 메서드를 구현하는 경우 포함 계층 구조를 통해 호출을 전파하여 모든 보유 리소스가 확보되는지 확인합니다. 예를 들어, A 개체가 B 개체를 할당하고 B 개체가 C 개체를 할당하는 경우 A의 Dispose 구현은 B에 대해 Dispose를 호출한 다음 다시 C에 대해 Dispose를 호출해야 합니다. 개체는 기본 클래스가 IDisposable을 구현하는 경우에도 해당 기본 클래스의 Dispose 메서드를 호출해야 합니다.

개체의 Dispose 메서드가 두 번 이상 호출되면, 해당 개체는 첫 번째 호출 이후의 모든 호출을 무시해야 합니다. Dispose 메서드가 여러 번 호출되는 경우 개체는 예외를 발생시키지 않아야 합니다. Dispose 이외의 인스턴스 메서드는 리소스가 이미 삭제된 경우 ObjectDisposedException을 발생시킬 수 있습니다.

리소스 형식은 특정 규칙을 사용하여 할당 상태와 확보 상태를 나타낼 수 있습니다. 예로 열려 있거나 닫혀 있는 것으로 간주되는 스트림 클래스를 들 수 있습니다. 이러한 규칙이 적용된 클래스의 구현자는 Dispose 메서드를 호출하는 공용 메서드를 구현하고 Close와 같은 사용자 지정된 이름을 지정할 수 있습니다.

Dispose 메서드는 명시적으로 호출되어야 하므로 IDisposable을 구현하는 개체도 Dispose가 호출되지 않은 경우에 확보된 리소스를 처리하기 위한 종료자를 구현해야 합니다. 기본적으로 가비지 수집기는 메모리를 회수하기 전에 개체의 종료자를 자동으로 호출합니다. 그러나 Dispose 메서드를 호출하면 일반적으로 가비지 수집기에서 삭제된 개체의 종료자를 호출할 필요가 없습니다. 자동 종료를 방지하기 위해 Dispose 구현 중에 GC.SuppressFinalize 메서드를 호출할 수 있습니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft