본문 바로가기
C#

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

by 캡틴노랑이 2017. 7. 11.
반응형

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

대상 컨텍스트/아파트를 소유하는 스레드가 펌프 대기를 수행하지 않거나, Windows 메시지를 펌프하지 않고 매우 긴 실행 작업을 처리하고 있는 것 같습니다. 

이러한 상황은 대개 성능에 부정적인 영향을 주며 응용 프로그램이 응답하지 않거나 시간이 흐름에 따라 메모리 사용이 증가하는 문제로 이어질 수도 있습니다. 

이 문제를 방지하려면 모든 STA(Single Threaded Apartment) 스레드가 펌프 대기 기본 형식(예: CoWaitForMultipleHandles)을 사용하고 긴 실행 작업 동안 지속적으로 메시지를 펌프해야 합니다.


디버그 모드에서만 생기는 오류인듯하다.


위와 같은 메세지 발생시 처리방법

Visual Studio의 Debug 메뉴에서

Exceptions->Managed Debugging Assistants 트리확장 > ContextSwitchDeadlock항목 Thrown 체크 풀기


반응형

댓글