有没有一种方法可以控制.NET中的进程继承哪些打开的句柄?

时间:2019-01-29 22:40:55

标签: c# .net winapi

我正在使用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。

我发现此进程似乎正在从父进程继承一个打开的文件句柄。因此,父进程将无法再使用该文件。

是否有防止这种情况发生的方法?还是有一种方法可以强制子进程在继承子进程后释放它?

0 个答案:

没有答案