c# - tener - Se estaba abortando el subproceso error al usar process.waitforexit()
system diagnostics c# (1)
Si lo está llamando desde una página ASP.NET, es probable que la excepción que está viendo sea resultado de haber pulsado el tiempo de espera de ejecución en la solicitud de la página y se haya cancelado. El error está en la línea p.WaitforExit () porque ahí es donde estaba su página ASP.NET mientras esperaba el proceso que comenzó a devolver. Puede cambiar el tiempo de espera de ejecución predeterminado (110 segundos en 2.0) en el archivo de configuración web para su aplicación ASP.NET.
<httpRuntime executionTimeout = "600" >
o por código en la página solo para esa página:
HttpContext.Current.Server.ScriptTimeout
Tengo el siguiente código que se llama desde un ciclo while, por lo que se ejecuta varias veces seguidas. A veces, pero no siempre, termino obteniendo un error en el hilo que se abortaba en el p.WaitforExit (). ¿Alguien tiene alguna idea de esto? ¿Debería llamar a p.Close () después de p.WaitForExit?
string outputFileName = Path.Combine(Path.GetDirectoryName(recordingFileName), Guid.NewGuid() + ".mpg");
ProcessStartInfo startInfo = new ProcessStartInfo(ffmpegfileName);
startInfo.Arguments = "-i /"" + recordingFileName + "/" -r 30 -sameq /"" + outputFileName + "/"";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process p = Process.Start(startInfo);
p.WaitForExit();
if (p.ExitCode != 0)
{
throw new Exception("exited with an exit code of " + p.ExitCode.ToString(CultureInfo.InvariantCulture) + ".");
}
return outputFileName;
Thread was being aborted. mscorlib at System.Threading.WaitHandle.WaitOneNative(SafeWaitHandle waitHandle, UInt32 millisecondsTimeout, Boolean hasThreadAffinity, Boolean exitContext) at System.Threading.WaitHandle.WaitOne(Int64 timeout, Boolean exitContext) at System.Diagnostics.Process.WaitForExit(Int32 milliseconds) at System.Diagnostics.Process.WaitForExit()