WaitForExitAsync con un tiempo de espera
Entonces noté que hay un método llamado WaitForExit
que acepta un entero como argumento (milisegundos), por lo que si el proceso no puede salir por sí mismo, simplemente lo maté después de unos segundos.
Algo así.
if (!CMD.WaitForExit(3000))
CMD.Kill();
El problema es que mientras tanto me gustaría guardar la salida, así que noté que hay un método asincrónico WaitForExitAsync
, pero este no acepta estos milisegundos.
// Esperar a la salida de forma asíncrona...
// Mientras tanto, guardar la salida hasta que se mate a sí mismo.
while (CMD.StandardOutput.ReadLine() != null)
standard_output = StandardOutput.ReadLine();
¿Alguna idea de cómo hacer esto? ¡Gracias!
davy.ai
Una forma de lograr esto sería iniciar un temporizador antes de llamar a
WaitForExitAsync
y luego leer la salida del proceso en un hilo separado. Una vez que el temporizador expire o el proceso salga, el hilo puede dejar de leer la salida y devolverla.Aquí hay un ejemplo de código:
Este código inicia un temporizador que matará al proceso después del período de tiempo especificado. Luego, inicia un hilo separado para leer la salida del proceso hasta que este termine. Una vez que el proceso finalice, se detienen el temporizador y el hilo de salida, y se devuelve la salida.