我正在将完整电子表格的内容读取到数据表中
然后遍历 Table.Rows 查询远程数据库(Oracle),并创建/更新/删除 ADS 帐户
然后用结果(状态)更新 Excel 行
大多数时候事情进展顺利,但间歇性地我得到这个异常:
检测到 ContextSwitchDeadlock
消息: CLR 在 60 秒内无法从 COM 上下文 0x2119a8 转换到 COM 上下文 0x211b18。拥有目标上下文/单元的线程很可能要么进行非泵送等待,要么处理非常长时间运行的操作而不泵送 Windows 消息。这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随着时间的推移不断累积。为避免此问题,所有单线程单元 (STA) 线程都应使用泵送等待原语(例如 CoWaitForMultipleHandles)并在长时间运行的操作期间定期泵送消息。
是什么原因造成的?