如何从.NET关闭所有继承的句柄

时间:2018-06-01 13:26:05

标签: c# .net process handle

我有一个.NET进程,它通过Invoke类启动另一个类似守护进程的.NET进程。因为Process利用句柄继承(ngx-infinite-scroll),所以我的守护进程似乎会阻止父进程拥有的句柄被清除。

因此,我希望通过关闭从其父级继承的所有句柄来启动子进程(标准IO流除外)。是否有允许我实现此功能的.NET API?

1 个答案:

答案 0 :(得分:0)

我认为你不必太担心它。阅读你链接的github引用和本文:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms683463(v=vs.85).aspx

除非您在父进程中明确创建标记为可继承的文件句柄等,否则我认为不存在问题。

另一种选择是使用PInvoke手动调用CreateProcess,并将InheritHandles设置为false。

https://www.pinvoke.net/default.aspx/kernel32/CreateProcess.html