MSDN에서는 BCL 유형의 인스턴스 멤버에 대한 스레드 안전성을 문서화하고 있지만 실제로 IDisposable
형식의 Dispose
메서드를 호출하는 방법을 나타내는 정보는 호출하지 못했습니다.쓰레기 처리 방법의 안전성?
Dispose
메서드는 a) 모든 클래스에 대해 스레드로부터 안전 할 수 있으며, b) 스레드로부터 안전하다는 보장이 없으며, c) 일부 클래스에 대해 스레드로부터 안전하다는 보장이있는 경우 (구체적으로 설명되어있는 경우))?
마지막으로 Dispose
메서드가 스레드로부터 안전하다는 보장이 있으면 일회용 리소스를 사용하는 클래스의 각 인스턴스 메서드 주위에 잠금을 설정해야한다는 의미입니까?
요점 : 유형에 대한 파이널 라이저는 가비지 수집이 .NET에서 (매우 적극적으로) 작동하는 방식으로 인해 스레드로부터 안전해야하며 잠재적으로 Dispose
메소드를 호출 할 수 있음을 알고 있습니다. 그러나 여기에서이 문제를 제쳐두겠습니다.
아마도 도움이 될 수 있습니다. http://stackoverflow.com/questions/151000/finalizers-and-dispose. –
고마워요,하지만 그건 제가 묻고있는 것이 아닙니다. 더욱이, 나는 파이널 라이저를 전혀 신경 쓰지 않는다. – Noldorin
다시 말하자면 명시 적으로 'Dispose'를 호출하고 Finalizer 스레드에 의존하지 말아야합니까? –