2010-05-03 4 views
2

모든 스레드가 일시 중지 되었습니까?CLR GC주기에서는 어떻게됩니까?

... 전체 수집에는 얼마나 걸립니까?

+0

가비지 수집을 트리거 스레드를 제외하고 일시 중지됩니다 수집. 이는 CLR이 실행을 관리하기 때문에 Windows API 호출을 사용하여 스레드 일시 중단과 동일하지 않습니다. 작업이 끝나면 관리되는 참조의 실제 포인터 참조가 실제로 이전에 비해 힙의 다른 위치를 가리킬 수 있으므로 관리되지 않는/관리되는 interop를 흥미롭게 유지할 수 있습니다. –

답변

2

예. 이 쓰레기를 허용하도록 스레드를 탈취하기 전에 모든 관리 스레드 (예를 들어, 어떤 메모리 장벽 외부) GC가 당신의 스레드가 안전한 장소에 도착 할 수 있습니다

http://msdn.microsoft.com/en-us/library/ee787088.aspx

+0

기본적으로 .NET은 워크 스테이션에서 동시 가비지 수집을 사용합니다 (해당 아티클의 뒷부분에 설명되어 있음). –