故障检测流程。退出事件

时间:2017-04-16 18:13:14

标签: c# pdf process system.diagnostics

在我的部分代码中,我尝试执行一个过程来打开PDF文件。我只有在流程结束时才需要跟进。

  

最初,我尝试按如下方式设置事件驱动方法:

    process = Process.Start(_pdfFilePath);

    process.EnableRaisingEvents = true;
    process.WaitForExit();
    process.Exit += OnProcessExit;

    private void OnProcessExit(object sender, EventArgs e)
    {
         //Calculate and print results
    }

然而,最终发生的事情是,事件永远不会被触发(尝试使用和不使用 EnableRasingEvents WaitForExit )。

  

我的第二种方法感觉不合适,但一见钟情:

    process = Process.Start(_pdfFilePath);

    process.EnableRaisingEvents = true;
    process.WaitForExit();

    OnProcessExit();


    private void OnProcessExit()
    {
        // Calculate and print results
    }

我假设由于WaitForExit()方法冻结了我的主窗体运行的线程,它将重新创建我需要的结果。但事实证明,计算是在打开文件时打印的,而不是在终止后打印的。

  

在第三次绝望的尝试中,我只是添加了一张支票如下:

    process = Process.Start(_pdfFilePath);

    process.EnableRaisingEvents = true;
    process.WaitForExit();

    if(process.HasExited)    
    OnProcessExit();


    private void OnProcessExit()
    {
        // Calculate and print results
    }

但检查没有效果。

有关为何未正确检测到流程终止的任何想法?这些方法是否仅适用于Windows操作和应用程序?

0 个答案:

没有答案