【问题标题】:Start process and allow caller to end without waiting for process to finish启动进程并允许调用者结束而不等待进程完成
【发布时间】:2013-04-22 19:41:16
【问题描述】:

我需要从 C# 控制台应用程序启动一个进程,然后允许控制台应用程序完成/结束,而无需等待进程/线程完成。

我该怎么做?

【问题讨论】:

    标签: c# process


    【解决方案1】:

    你需要避免让你的新进程成为当前进程的子进程:

    ProcessStartInfo sinfo = new ProcessStartInfo();
    sinfo.UseShellExecute = true; // Do not wait - make the process stand alone
    sinfo.FileName = "PathAndNameofExe";
    Process.Start(sinfo);
    

    【讨论】:

    • 此解决方案适用于 .NET Framework 和 Core 应用程序。
    【解决方案2】:
    Process.Start("TheNameOfTheOtherProcess.exe");
    

    【讨论】:

    • 这仅适用于 .NET Framework 应用程序,其中默认使用 ShellExecute。在 Core UseShellExecute 默认为 false。请参阅@hans-karlsen 的答案,了解适用于两者的解决方案。
    • @Nanki 我的意思是,这不适用于在发布此问题或答案数年后创建的技术。您似乎认为这个问题与实际问题不同。
    • 一点也不。你当时的回答很完美,只是被取代了。
    猜你喜欢
    • 2010-10-11
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2012-02-15
    • 2010-11-06
    相关资源
    最近更新 更多