【发布时间】:2019-08-29 15:41:09
【问题描述】:
我启动了多个流程,我想跟踪每个流程,以便在流程在我不知情的情况下结束时重新启动。
目前,我将进程 ID 存储在我的数据库中,并使用进程 ID 和名称来检查进程是否仍在运行。
Process process=Process.GetProcessById(id);
if(process.ProcessName==processName){
//kill the process
}
但是,我在网上读到,当一个进程死亡时,它的 id 将免费供其他进程使用。可能会有一个带有我旧进程 ID 和名称的新进程,这可能导致我假设我的旧进程仍在运行。
我可以添加任何其他字段来使我的流程独一无二吗?比如工艺现场?我无法获得有关流程站点用途的更多信息。
【问题讨论】:
-
如果 processID 是您要查找的进程 ID,而进程名称是您要查找的进程名称....那么您应该很好。
-
请允许我澄清一下您对此有何了解或不了解:您是否知道您无法在技术上启动(或重新启动)流程结束后?您可以使用相同的参数启动 new 进程,但它将是具有不同进程 ID 的新进程。您还知道在 Windows 中您可以打开进程的 HANDLE,即使在进程退出后它仍然有效?