Non riesco a utilizzare Process.Kill()
. Penso che dovrei fraintendere come funziona. Questa è la mia funzione di test. Inizio un processo di lunga durata (ping -t
) e poi lo uccido cinque secondi dopo.Process.Kill() non sembra terminare il processo
È possibile visualizzare il processo di ping, ma il processo è ancora lì dopo che il programma è terminato. Devo ucciderlo manualmente.
Console.WriteLine("Total number of ping processes is {0}", Process.GetProcessesByName("ping").Length);
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe");
Process process = new Process();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.Arguments = "/c ping -t 8.8.8.8";
Console.WriteLine("Staring ping process");
process.StartInfo = startInfo;
process.Start();
Thread.Sleep(5000);
Console.WriteLine("Total number of ping processes is {0}", Process.GetProcessesByName("ping").Length);
Thread.Sleep(5000);
Console.WriteLine("Killing ping process");
process.Kill();
Thread.Sleep(5000);
Console.WriteLine("Total number of ping processes is {0}", Process.GetProcessesByName("ping").Length);
Cosa sto facendo di sbagliato qui?
Testato il codice e funziona correttamente. Da dove stai eseguendo questo codice? – vesan
@vesan Windows 8.1. L'ho eseguito sia da PowerShell che da cmd.exe. –
Qualche differenza per eseguire direttamente Ping.exe senza cmd? –