ProcessStartInfo psi = new ProcessStartInfo(BatchFile)
Process p = Process.Start(psi)
为什么p.ID
与WindowsTaskManager中可见的进程ID不同
(BatchFile
是具有适当参数的外部程序的路径)
答案 0 :(得分:2)
我假设BatchFile是某种cmd或bat文件,它逐个运行其他进程 因此,在Windows任务管理器中,您实际上会看到由批处理文件运行的那些进程的ID。
实施例
如果我这样做
var p = Process.Start("notepad.exe");
p.Id
将与任务管理器中的PID
匹配。
但是,如果我这样做:
var p = Process.Start("test.cmd"); // test.cmd has notepad.exe call inside
p.Id
将与任务管理器中显示的PID
不同。
答案 1 :(得分:2)
答案 2 :(得分:1)
进程ID仅在进程处于活动状态时才有意义。要检查的第一件事是.HasExited
- 如果是这样, 忽略 进程ID;它已经没有任何意义了。
即使您仍然可以在屏幕上看到,有很多方法可以启动某些内容并且没有任何进程: