有没有办法让Process.TotalProcessorTime反映一个进程以及它产生的任何进程?
或者,我如何验证进程(或其后代)是否仍在“积极”运行?
我的应用程序正在生成一个外部进程并等待它退出。使用样本数据需要 5-20分钟才能完成;我没有猜测合理的最大超时时间。所以我的应用程序会每隔一段时间检查另一个进程的Process.TotalProcessorTime值,以确保它不断上升。
这很好用,但我发现该进程只是一个“包装器”,它产生一个子进程,而子进程又会产生一些消耗所有 CPU 时间的其他子进程。
而且我发现TotalProcessorTime在 CPU 利用率达到 100% 的几分钟后只返回一小部分时间。