【问题标题】:Process.Close() is not terminating created process,c#Process.Close() 没有终止创建的进程,c#
【发布时间】:2010-10-14 22:54:26
【问题描述】:

我编写了一个 C# 应用程序,它使用 System.Diagnostics.Process 类来创建一个进程,使用

 Process P1 = new Process();
 P1.FileName = "myexe.exe";

和其他适当的设置。

我已将它链接到一个运行大约 10 分钟的 exe 文件。 (我正在编写程序来测量程序的运行时间)。现在,我想中止正在运行的进程。所以我在取消按钮的事件中写了,

 Process.Close();

但在任务管理器中我仍然看到 myexe.exe 正在运行,它并没有中止。怎么办?

【问题讨论】:

    标签: c# process


    【解决方案1】:

    Process.Close() 并不是要中止进程——它只是要释放你对进程和相关资源的“本地”视图。

    我想你的意思是Process.Kill()Process.CloseMainWindow()。不过,我个人会尝试找到一种更优雅的方式来关闭它。

    【讨论】:

    • 那会是什么?如果底层 exe 支持,刷新所有流,然后发送内部中止方法?
    • @Anirudh - 我认为他的意思是“你为什么需要强制关闭应用程序?”。在执行过程中中止进程通常是不利的,因为它会导致数据损坏。
    • 我通常会尝试向应用指示“请立即关闭”,而不是直接杀死它。如果您控制该应用程序,您可以让它监视其父进程消失。
    【解决方案2】:

    请改用Process.Kill

    【讨论】:

      【解决方案3】:

      我认为Process.Kill() 是您正在寻找的。​​p>

      【讨论】:

        猜你喜欢
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 2018-03-11
        • 2011-01-15
        • 2011-04-03
        • 2021-07-26
        • 2012-03-14
        相关资源
        最近更新 更多