Есть ли способ контролировать, какие открытые дескрипторы наследуются процессом в .NET? - PullRequest
0 голосов
/ 30 января 2019

Я создаю процесс из другого процесса в 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 междупроцессы.

Я обнаружил, что этот процесс наследует дескриптор открытого файла от родительского процесса.В результате родительский процесс больше не может работать с файлом.

Есть ли способ предотвратить это?Или я могу заставить дочерний процесс освободить дескриптор после его наследования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...