vb.net - 处理大数据时出现错误消息 ContextSwitchDeadlock
问题描述
我在 vb.net 2017 上有一个应用程序,它从 excel 读取并保存到数据库。当我处理来自 excel 的大数据时,有时应用程序会停止,并且在 Visual Studio 中出现此错误:
托管调试助手 'ContextSwitchDeadlock' : 'CLR 无法从 COM 上下文 0x1b387fb0 转换到 COM 上下文 0x1b387e88 60 秒。拥有目标上下文/单元的线程很可能要么进行非泵送等待,要么处理非常长时间运行的操作而不泵送 Windows 消息。这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随着时间的推移不断累积。为避免此问题,所有单线程单元 (STA) 线程都应使用泵送等待原语(例如 CoWaitForMultipleHandles)并在长时间运行的操作期间定期泵送消息。
如果我在 Visual Studio 中按 Continue ,程序将继续执行并完成工作而不会出错。
但每次我重复这些过程时,我都会得到那个错误。
我能做些什么 ?
谢谢 !
解决方案
推荐阅读
- arrays - 遍历 char 数组以查找数值时出错
- javascript - 为什么我无法访问 html 中的 Table 容器?
- html - 拉伸垂直flexbox的内部内容
- php - 为什么我不能将此数组提交给 PHP?
- azure - 如何在 EventHub 上查看所有连接的消费者
- python - 如何修复错误:“没有名为 'pygame' 的模块”
- spring - OAuth2 登录 Spring Security 使用 HTTP Post 进行授权端点请求
- php - 按类别显示自定义帖子类型
- python-3.x - 为什么 sympy 中的这个布尔表达式的计算结果为 false:(~a&b)|(a&~b)==a^b?
- python - 使用 apt-get install python3-dev 重新安装后未找到 Python.h 文件错误