收到有关程序终止的通知

时间:2013-04-01 17:39:14

标签: c#

请在下面找到我的代码。我通过Stack Overflow抓取了如何在进程终止时获得通知并使用我的代码中的建议如下(最后3行)。

    private void button1_Click(object sender, EventArgs e)
    {
        folderBrowserDialog1.ShowDialog();
        System.Diagnostics.Process process = new System.Diagnostics.Process();
        System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();            
        //startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = "/C rep_cmd "+textBox2.Text+" -text "+folderBrowserDialog1.SelectedPath+"\\";
        process.StartInfo = startInfo;
        System.Diagnostics.Process.Start(startInfo);
        if (process.HasExited == true)
           MessageBox.Show("Process done successfully!");            
    }

但是,当我运行程序时,我得到一个运行时异常,说“没有进程与此对象关联”。不知道如何纠正这个问题。

请帮助。

1 个答案:

答案 0 :(得分:1)

您必须生成并行线程以检查进程是否在该并行线程中退出。以下方法可以解决问题。为了确保您不阻止该程序,请从并行线程

调用它
    public  void  CheckProc() 
    {
        while (true)
        {
            if (process.HasExited == true)
            {
                MessageBox.Show("Process done successfully!");
                break;
            }

        }
    }

也可以通过 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.hasexited.aspx