问题标签 [contextswitchdeadlock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

c# - 我收到此错误消息`ContextSwitchDeadlock`

我正在尝试读取“csv 文件”,然后将其数据保存到employee记录中,然后将此记录添加到 alist中,然后将列表添加到 a 中data table,最后在 a 中显示数据表内容datagridview。我似乎无法弄清楚我是否正在运行无限循环或问题可能是什么。程序运行 1 分钟,然后抛出错误ContextSwitchDeadlock

0 投票
0 回答
32 浏览

c# - 有什么办法可以解决两个同时调用两个不同的类互相等待的问题

我的项目中有两个不同的类,它们负责模块的一些打开和执行,并从其他一些解决方案中调用。我的解决方案不支持多线程。

现在我的问题是——我有一个类CPMModule.cs

_cpmBridge.isBlocked()调用此方法以通过检查和值检查模块窗口何时准备好处理新调用_cpmBridge.isClosing(),并在它返回 true 时打开一个新模块。

我在另一个类CallListenerClass.cs中有另一个方法-

此方法负责关闭屏幕中打开的任何弹出窗口及其相关执行。

现在我的问题是——在我的屏幕上打开了一个弹出窗口,当我关闭这个弹出窗口时,这个stopModal()方法开始执行,有时会出现一个新的QueryLinkActivate()方法调用。

在这种情况下,stopModal()执行没有完成,执行被切换到另一个方法,即QueryLinkActivate()有一个循环不断检查模块是否空闲,stopModal()执行需要完成,由于QueryLinkActivate()while 循环而永远不会完成。我的应用程序进入无响应状态,然后只能由任务管理器关闭。

有人可以帮助我如何处理这种情况吗?我怎样才能完成stopModal()执行然后恢复QueryLinkActivate()方法执行。

提前致谢