2011-09-06 18 views
0

가능한 중복 : 나는 예를 들어 그래픽, 또는 스레드를 사용하는 클래스를 작성하는 경우
Proper use of the IDisposable interface
When is Dispose necessary?.Dispose()는 C#에서 어떻게 작동합니까?

, 나는) (A 폐기를 쓸 수는 IDisposable 인터페이스를 구현해야합니다 메서드 또는 다른 메모리 누수가 발생합니까? GC가 도달하면 Dipose()가 실행됩니까? Dispose() 메서드를 구현하면 "disposing"매개 변수가 true이거나 자동이면 클래스의 모든 일회용 필드에서 Dispose()를 호출해야합니까? "관리되지 않는 리소스"란 무엇입니까?

그래서 나는 그것에 대해 꽤 확실 해요, 나는 나에게 이런 일 : 이

+2

이것은 .NET 프로그래밍에서 가장 많이 쓰여진 주제에 관한 것입니다. –

+1

@KisGabo는 새로운 질문의 제목을 입력 할 때 비슷한 질문을 제안하지 않으십니까? 나는 자동 제안이 너를 포함하여 크로스 브라우저에서 작동하고 있다고 생각했다. –

+0

[Microsoft의 대포 예제] (http://msdn.microsoft.com/en-us/library/system.idisposable.dispose.aspx)는 모두 Dispose 구현을 보여준다. 파이널 라이저로 물론 GC와 파이널 라이저는 다소 비 결정적이기 때문에'using' (일명'Dispose()')가 가장 좋습니다. IDisposable은 "자동"입니다. –

답변

0

IDisposable 그냥 따라하는 패턴 당신에게 감사를 이해하는 데 도움이 아무것도 감사하겠습니다. 그것은 그 자체로, 그리고 그 자체로 특별한 것을하지 않습니다 (using statement의 요구 사항을 맞추는 것 외에는).

네이티브 리소스로 작업하는 경우 리소스는 가비지 수집기에 "알려져 있지 않습니다." IDisposable은이 자원을 결정 론적으로 해제 할 수있게하는 데 사용되는 규칙입니다.

자세한 내용은 detailed series on IDisposable을 작성하여 다양한 시나리오 (기본 리소스 래핑, 다른 IDispsable 유형 캡슐화 등 포함)에 대해 구현하는 이유와 방법을 설명합니다.

관련 문제