我正在使用C#中的另一个进程创建一个进程,如下所示:
process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.FileName = "process.exe";
process.OutputDataReceived += ProcessOnOutputDataReceived;
然后在一个单独的线程中调用:
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
这使我能够在流程之间进行基本的IPC。
我发现此进程似乎正在从父进程继承一个打开的文件句柄。因此,父进程将无法再使用该文件。
是否有防止这种情况发生的方法?还是有一种方法可以强制子进程在继承子进程后释放它?