VS2005 中ContextSwitchDeadlock 的解决

来源:百度文库 编辑:神马文学网 时间:2024/04/28 22:51:06
在VS2005中总能碰到   ContextSwitchDeadlock   ,几乎60秒就出现一次,严重影响调试,
已开始没觉着什么,后来发现别人根本没这问题,于是就郁闷了 :(
其中描述信息如下:
Message:   CLR   无法从   COM   上下文   0x197e78   转换为   COM   上下文   0x197d08,这种状态已持续   60   秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送   Windows   消息的情况下处理一个运行时间非常长的操作。这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积。要避免此问题,所有单线程单元(STA)线程都应使用泵式等待基元(如   CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。
解决办法如下:
Debug   -->   Exceptions   -->   Managed   Debug   Assistants
取消ContextSwitchDeadlock
即可大功告成,哈,解决了困扰我N天的问题了