0
在我的应用程序中有一个父进程,它会产生子进程。我试图利用这个父进程来监视孩子,以确保GUI保持响应,如果没有,生成一个转储文件。检测子进程是否挂起父进程
我遇到的问题是Process.Responding
只能检测一些图形用户界面挂起(例如在GUI线程或堆栈溢出)而不是其他(例如GUI线程上的死锁)。
所以问题是:我还能如何检查孩子的GUI是否仍然从父进程更新?
编辑:基于迄今为止的意见,我想我应该澄清。我负责使用插件体系结构来维护应用程序的框架,该插件体系结构非常多线程,并且拥有数十万行代码的代码库,其中大部分代码不受我控制。虽然我理解理想的方法不是首先挂起,但它偶尔也会发生。我希望能够平稳地收集这些情况并收集调试信息,以便解决问题。
我考虑的另一种方法是使用GUI线程来触摸文件,并让父进程检查文件的时间戳。但是,我宁愿不在GUI线程上执行文件操作。
如果您使用多个线程,请尝试使用异步并等待与“主线程”不相关的进程。 – darkndream
为什么在UI线程上运行代码可能会死锁?如果您必须在您的程序中创建一个程序来监视它是否挂起,这是一个不好的迹象。 – Loathing
我总是使用log4net进行日志记录。它显示时间戳和线程号,以便您知道您在哪个过程中停留。 https://logging.apache.org/log4net/release/example-apps.html –