c# - Process.Start 是否在父程序终止时终止子程序?

标签 c# .net process process.start

Process.Start(exepath); 开始的程序会在父进程结束时终止吗?我发现它有一些奇怪的行为,我相信这可能是问题所在。

最佳答案

在 Windows 上,子进程通常独立存在,一旦启动,它们就不依赖于它们的父进程。您正在寻找job objects .使用作业,您可以控制整个进程树的生命周期,如果父进程结束,所有子进程都可以确定地终止(通过让父进程拥有作业,严格来说,如果作业被终止,所有子进程都会终止)。它没有托管的 .Net API,但 p-Invoke 工作正常。

因此,如果您遇到意外的“奇怪行为”,请确保您的进程未在作业上下文中启动,从而导致您的子进程也成为作业的一部分。 Process Explorer可以显示进程的作业属性。

关于c# - Process.Start 是否在父程序终止时终止子程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22318493/

相关文章:

c# - 使用属性包装方法 C#

java - 为什么 java.lang.process 的 readline() 在读取具有相同操作系统的不同机器上的输入流时表现不同

c# - 查看 c# 控制台应用程序参数

c# - 重载和覆盖问题

c# - 后台 worker 调用之间是否保留了线程本地存储?

javascript - 合并两个独立函数的结果?

c# - 将密码/字符串发送到外部控制台应用程序 C#

c# - 如何从命令行运行已编译的 Blazor Web 客户端?

c# - 在 RavenDB 中查询嵌套列表时出现问题

c# - 我可以重用内置 IIS 身份验证但提供我自己的凭据检查吗?