【问题标题】:Getting a Process to terminate让进程终止
【发布时间】:2010-12-21 13:33:06
【问题描述】:

我有一个流程对象设置如下:

Process p = new Process();
p.StartInfo.FileName = command;
p.StartInfo.UseShellExecute = true;
p.StartInfo.Arguments = String.Format(
    commandArguments,
    destinationLocation,
    sourceLocation,
    sourceDirName,
    (string.IsNullOrEmpty(revisionNotes.Text)) ? "" : revisionNotes.Text);

(其中未定义的值在此代码外部提供并且有效)。有问题的进程启动并使用p.Start(); 正确执行,但我需要在终止时捕获它。控制台窗口短暂闪烁并消失,这似乎表明该过程已完成,但没有触发任何相关事件(OutputDataRecieved、Exited 等),就像该过程永远不会结束。 (如果相关,我正在尝试使用一些参数执行 lua 脚本)。有人可以帮我让这个过程正确停止吗?

【问题讨论】:

    标签: c# .net lua process halt


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      您是否将进程的EnableRaisingEvents 属性设置为True?没有它,您将无法捕捉到 Exited 事件。

      【讨论】:

      • 男孩这是一个愚蠢的标志(至少对我来说),但感谢您的帮助,这可能就是我想要的!
      • 达林的方法一般比较适合,除非你想在等待进程结束的同时做其他事情。
      • 我在 close 事件中添加了一个 lambda 来完成我的工作,所以这对我有好处。此外,如果我愿意,它可以让我显示进度条。
      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      相关资源
      最近更新 更多