gpt4 book ai didi

c# - 产生将杀死其父进程但进程仍然存在的新进程?

转载 作者:行者123 更新时间:2023-11-30 18:31:56 33 4
gpt4 key购买 nike

我有一个正在运行的服务,该服务将创建一个新线程来启动一个进程。

它启动的进程将调用一个 MSI,该 MSI 将实质上停止原始父服务(调用启动该 msi 的进程的服务)

截至目前,该进程终止导致 MSI 在完成执行之前失败。

startInfo.FileName = "UpdateInstaller.exe";
startInfo.Arguments = "ParentServiceName.exe";
startInfo.UseShellExecute = true;
startInfo.RedirectStandardOutput = false; //Edited as per comment below. Still wont work

new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
Process.Start(startInfo);
}).Start();

关于如何运行这个进程但保持它存活,甚至在父进程死后,有什么想法吗?

最佳答案

由您的代码启动的这个进程在调用代码终止后保持打开状态。举个例子——如果你有一个控制台应用程序,它会自然地在这里退出,记事本进程在它“消失”后将保持打开状态:

    static void Main(string[] args)
{
var startInfo = new ProcessStartInfo
{
FileName = "notepad.exe",
UseShellExecute = true,
RedirectStandardOutput = false
};

new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
Process.Start(startInfo);
}).Start();
}

关于c# - 产生将杀死其父进程但进程仍然存在的新进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288977/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com