c# - Process.Exited 仅有时调用

标签 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);
}

最佳答案

当进程退出时,你确定你的程序还在运行吗?

我怀疑在调用 Process_Exited 之前您的程序是否已结束。

关于c# - Process.Exited 仅有时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678514/

相关文章:

c# - 如何将参数传递给 RazorPage OnGet()?

c# - 什么时候应该使用存储在数据库中的枚举以及什么时候在代码中使用枚举?

c# - WER 报告的神秘 IL 偏移量

asp.net - 在运行时设置RegularExpressionValidator ValidationExpression

调用 POST 方法时 ASP.NET MVC Model 属性为 null

c# - Xamarin Forms Visual Studio 2015 HttpClient 请求在 iOS 上不起作用

c# - 如何通过页面加载 asp.net 判断表单复选框是否被选中

java.io.IOException : error=11 异常

c# - 如何将IEnumerable与Process.Start的输出事件处理程序一起使用?

debugging - 在 VS 2015 中无法调试到本地机器或设备