Process.Exited有时只调用

时间:2013-03-28 09:43:14

标签: c# asp.net process

嗨其他程序员,

我在这个问题上摸不着头脑。我使用以下方法来启动进程。第一个是wkhtmltoimage.exe,然后是wkhtmltopdf.exe。一切都按预期工作,除了Process_Exited并不总是被调用。在我的程序的单次运行中,我多次按下相应的按钮,我有所有可能的变化:

  • 只有wkhtmltoimage举起了活动
  • 只有wkhtmltopdf举起了活动
  • 两人都做了
  • 事件根本没有提出。

通过任务管理器和调试器,我可以验证 这些过程总是正确结束 没有什么是可重复的,每次运行都是不同的。这是我第一次尝试使用流程,也许我做错了。幸运的是,解决这个问题对我的申请来说并不重要。

protected Process StartProcess(string FileName, string Arguments)
{
    ProcessStartInfo MyStartInfo = new ProcessStartInfo(FileName, Arguments)
    {
        UseShellExecute = false,
        CreateNoWindow = true,
        RedirectStandardOutput = true,
        RedirectStandardInput = true
    };

    Process Proc = new Process { StartInfo = MyStartInfo };
    Proc.EnableRaisingEvents = true;
    Proc.Exited += (sender, name) => Process_Exited(Proc, Proc.ProcessName);
    Proc.Start();

    return Proc;
}


protected void Process_Exited(object sender, string ProcessName)
{
    Debug.WriteLine("Process_Exited: " + ProcessName);
}

1 个答案:

答案 0 :(得分:0)

您是否确定在退出流程时您的程序仍在运行。

在调用Process_Exited之前,我怀疑你的程序是否正在结束。