不寻常的例外 – 阅读/更新Excel电子表格

我正在阅读一个完整的电子表格内容到一个数据表

然后遍历Table.Rows查询远程数据库(Oracle)和创build/更新/删除ADS帐户

然后用结果(状态)更新Excel行

大多数情况下,事情顺利,但间歇性地得到这个例外:

ContextSwitchDeadlock被检测到
消息: CLR已经无法从COM上下文0x2119a8转换到COM上下文0x211b18 60秒。 拥有目的地上下文/公寓的线程很可能是在不抽取Windows消息的情况下进行非抽取等待,或者处理非常长的运行操作。

这种情况通常会对性能产生负面影响,甚至可能导致应用程序无响应或内存使用量不断累积。 为了避免这个问题,所有的单线程单元(STA)线程应该使用抽取等待原语(比如CoWaitForMultipleHandles),并在长时间运行的操作中定期抽取消息。

什么可能导致这个?

Interesting Posts