2012년 12월 26일 수요일

CLR에서 60초 동안 COM 컨텍스트 0x606b88에서 COM 컨텍스트 0x606e68(으)로 전환하지 못했습니다


CLR에서 60초 동안 COM 컨텍스트 0x606b88에서 COM 컨텍스트 0x606e68(으)로 전환하지 못했습니다.
대상 컨텍스트/아파트를 소유하는 스레드가 펌프 대기를 수행하지 않거나, Windows 메시지를 펌프하지 않고 매우 긴 실행 작업을 처리하고 있는 것 같습니다.
이러한 상황은 대개 성능에 부정적인 영향을 주며 응용 프로그램이 응답하지 않거나 시간이 흐름에 따라 메모리 사용이 증가하는 문제로 이어질 수도 있습니다.
이 문제를 방지하려면 모든 STA(Single Threaded Apartment) 스레드가 펌프 대기 기본 형식(예: CoWaitForMultipleHandles)을 사용하고
긴 실행 작업 동안 지속적으로 메시지를 펌프해야 합니다.





해결방법은
VS->디버그->예외->Managed Debug Assistants->ContextSwitchDeadlock 체크해제 하기

출처 : http://monsterwave.tistory.com/48



댓글 없음: