为什么这段代码没有杀死进程?

Sun*_*i86 2 c# c#-4.0

Process.Start(jrekeypath);

Thread.Sleep(5);

foreach (Process clsProcess in Process.GetProcesses())
{
    if (clsProcess.ProcessName.StartsWith("javaw"))
    {
        clsProcess.Kill();
    }
}
Run Code Online (Sandbox Code Playgroud)

它不会杀死这个过程.这个片段有什么问题吗?

Rup*_*Rup 10

同上面的5ms答案,但你也可以尝试保持过程处理并重新使用它,例如

var javawProcess = Process.Start(jrekeypath);
Thread.Sleep(5000);
javawProcess.Kill();
Run Code Online (Sandbox Code Playgroud)


Fre*_*örk 5

5毫秒不是很长的时间.可能是因为当你的代码找到它时,该进程实际上尚未启动,而是在之后不久开始?