在我的应用程序中,有一个父进程生成其子进程。我正在尝试利用此父进程来监视子进程以确保GUI保持响应,如果没有,则生成转储文件。
我遇到的问题是Process.Responding
仅检测到一些GUI挂起(例如在GUI线程上休眠或堆栈溢出)而不检测其他GUI挂起(例如GUI线程上的死锁)
所以问题是:我怎么能检查孩子的GUI是否仍在从父进程更新?
编辑:根据迄今为止的评论,我想我应该澄清一下。我负责使用大量多线程的插件架构来维护应用程序的框架,并且代码库有数十万行代码,其中大部分代码都在我无法控制的范围内。虽然我理解理想的方法不是首先挂起,但它仍然偶尔发生。我希望这些情况优雅,并在此过程中收集调试信息,以便解决问题。
我考虑过的另一种方法是使用GUI线程触摸文件并让父进程检查文件的时间戳。但是,我宁愿不在GUI线程上执行文件操作。
答案 0 :(得分:1)
在我上面提到的策略尝试失败之后,以下是我最终解决这个问题的方法:
到目前为止,一切似乎都在按照我的预期进行。