在不发送 Windows 消息的情况下处理一个运行时间非常长的操作
2010-03-29 17:36
495 查看
为项目写了一个VSTO的EXCEL工程,调试时报“CLR 无法从 COM 上下文 0x159268 转换为 COM 上下文 0x158f88,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作。这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积。要避免此问题,所有单线程单元(STA)线程都应使用泵式等待基元(如 CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。”的错,按确定后不能进行单步测试(在调试的时候出这个问题,执行.exe 的时候根本就没这个问题的)。
查相关资料后在VS.NET的调试菜单下选异常,把“Managed Debugging Assistants”下的“ContextSwitchDeadlock”后面的引发选项取消,
重新进行调试,
问题解决。
查相关资料后在VS.NET的调试菜单下选异常,把“Managed Debugging Assistants”下的“ContextSwitchDeadlock”后面的引发选项取消,
重新进行调试,
问题解决。
相关文章推荐
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- CLR 无法从 COM 上下文 0x1a2740 转换为 COM 上下文 0x1a28b0,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积
- 解决c#所有单线程单元(STA)线程都应使用泵式等待基元(如 CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。 转载
- sqlserver 消息 682,: 内部错误。提供用于读取列值的缓冲区太小。请运行 DBCC CHECKDB 查看是否有损坏情况 的处理方法
- 深入剖析MFC中Windows消息处理、运行机制
- 使用top命令动态监听运行时间非常短的程序的内存使用情况
- 如何处理在android中有来电就给来电用户发送一个消息?
- 移动矩形代码和一个非常重要的windows消息队列机制的坑
- 一个操作windows窗口的类“clsWindow”,使用非常方便!含源码 V2.0
- 深入剖析MFC中对于Windows消息处理、运行机制
- 如何用两个栈来实现一个队列,并分析有关队列操作的运行时间。
- 如何用两个队列实现一个栈,并分析有关栈操作的运行时间。
- QT中用udp客户端发送消息,丢失数据的情况以及处理!
- windows完成端口 等待客户端发送一次消息才能完成AcceptEx操作的解决方法
- (MFC入门)创建一个windows消息处理函数
- 网站错误处理、运行时间、文件大小、接受和发送编码设定
- 深入剖析MFC中Windows消息处理、运行机制
- stdafx.h、stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编