我有一个处理文件传输的应用程序。在某些情况下,我需要启动一些对文件进行处理的预处理/后处理可执行文件。
所以事件的顺序(简而言之)是这样的:
- 工作线程已创建
- Worker 意识到它需要在开始传输之前启动一个预处理可执行文件 启动预处理,worker 等待......如果等待时间过长,传输将不会发生,线程应该优雅地完成
- 文件已传输
- Worker 意识到它需要在传输完成后启动一个后处理可执行文件
- 启动后处理,worker 不关心等待
基本上,我不在乎后处理可执行文件在传输发生后运行多长时间。因此,如果我从一个线程启动进程然后返回到池中,我是否应该预料到任何问题?
//后期过程
Process process = null;
ProcessStartInfo psi = new ProcessStartInfo(executable, args);
psi.UseShellExecute = true;
try
{
process = Process.Start(psi);
//The pre-process simply calls Process.WaitForExit(timeout value)
launched = true;
}
catch (InvalidOperationException) { }
catch (ArgumentException) { }
catch (System.ComponentModel.Win32Exception) { }
catch (System.IO.FileNotFoundException) { }