c# - async - Espere hasta que el proceso ya no se esté ejecutando O hasta que haya transcurrido el tiempo de espera, lo que ocurra primero
httpwebrequest timeout c# (3)
Quiero finalizar un proceso que se ejecuta en la máquina con taskkill si aún se están ejecutando después de X segundos (se detuvo un servicio de Windows, pero los procesos desaparecen). 2.0 o posiblemente 3.0)?
Tengo un método de utilidad para verificar si un proceso todavía se está ejecutando, dado el nombre del proceso (usando Process.GetProcesses()
). (Como el código no genera el proceso, no puedo usar WaitTillExit para saber cuándo ya no se está ejecutando)
PD: el proceso se ejecuta en una máquina remota.
De hecho, puede usar Process.WaitForExit ().
Simplemente consigue el proceso para esperar a través de
Process p = Process.GetProcessById(iYourID);
Y luego llamar
if(!p.WaitForExit(iYourInterval))
{
p.Kill();
}
También puede obtener procesos a través de su nombre por
Process.GetProcessesByName(strYourProcessName);
Puede llamar a Process.WaitForExit
, pasando el tiempo de espera apropiado. De esta manera, no necesitará usar su propio cheque para ver si el proceso todavía se está ejecutando.
Process p = ...
bool exited = p.WaitForExit(10000); // 10 seconds timeout