我的项目中有两个不同的类,它们负责一些模块的打开和执行,并从其他解决方案中调用。我的解决方案不支持多线程。
现在我的问题是- 我有一类 CPMModule.cs
public bool QueryLinkActivate()
{
while (true)
{
if (!_cpmBridge.isBlocked() && !_cpmBridge.isClosing())
{
return true;
}
}
}
调用此方法以通过检查_cpmBridge.isBlocked()
和_cpmBridge.isClosing()
值来检查模块窗口何时准备好处理新的调用,并在返回true时打开一个新模块。
我在另一个类 CallListenerClass.cs -
中有另一个方法 public void stopModal()
{
_cpmModule.StopModal();
}
此方法负责关闭屏幕上打开的任何弹出窗口及其相关执行。
现在我的问题是-屏幕上打开了一个弹出窗口,当我关闭该弹出窗口时,此stopModal()
方法执行开始,有时还需要QueryLinkActivate()
的新调用方法来了。
在这种情况下,stopModal()
执行未完成,并且执行被切换到另一种方法,即QueryLinkActivate()
,其中存在一个循环,该循环不断检查模块是否空闲{ {1}}执行需要完成,由于stopModal()
while循环而无法完成。而且我的应用程序进入“无响应”状态,然后只能由任务管理器关闭。
可以帮我如何处理这种情况?如何完成QueryLinkActivate()
执行,然后恢复stopModal()
方法执行。
预先感谢