请在下面找到我的代码。我通过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!");
}
但是,当我运行程序时,我得到一个运行时异常,说“没有进程与此对象关联”。不知道如何纠正这个问题。
请帮助。
答案 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