Process.WaitForExit()等待关联进程退出

解决方案 »

  1.   

    what are you doing inside while? are you using something likeSystem.Threading.Thread.Sleep(5000)if you need to wait for some result, use multithreading and periodically refresh your page, for example, seeBoost Web Performance With Multithreading
    http://www.fawcette.com/vsm/2002_11/magazine/features/chester/
      

  2.   

    以下是我其中的代码,目的是等待进程退出(或过一定时间后退出循环并启动另一个过程等待进程退出),
    Process pc = new Process();
    bool donPc = false;//进程是否结束
    pc.StartInfo.FileName = "d:\test.bat";
    pc.StartInfo.UseShellExecute = false;
    pc.StartInfo.RedirectStandardOutput = false;

    dtStart = DateTime.Now;
    pc.Start();TimeSpan span;
    while (true)
    {
             dtNow = DateTime.Now;
    span = dtNow.Subtract(dtStart);
    if ( Convert.ToInt32(span.TotalMilliseconds) > pcWait )
    {
    donePc = false;
    break;
    }
    else
    {
    if (pc.HasExited)
    {
    donePc = true;
    break;
    }
    }
    }
      

  3.   

    why not use Process.WaitForExit()??
      

  4.   

    Process pc = new Process();
    bool donPc = false;//进程是否结束
    pc.StartInfo.FileName = "d:\test.bat";
    pc.StartInfo.UseShellExecute = false;
    pc.StartInfo.RedirectStandardOutput = false;
    pc.Start();
    pc.WaitForExit();
    //看三楼
      

  5.   

    如果用了waitforexit的话,程序就不会往下继续执行了,而且我想实现的是过一定的时间(比如30分钟)如果进程未执行完,启动另外一个处理,这个处理中等待进程退出,如果退出则给指定用户发邮件,还望再指点!!!
      

  6.   

    你想实现类似ejb状态保持的功能吧?刚接触.net不知道怎么实现。关注
      

  7.   

    你可以用thread.sleep来使该线程休勉一段时间,当然前提是你处理当前任务的代码必须是在一个子线程中执行的,那么你就的主线程就可以在该子线程休眠的时间段内继续处理你的事务了,在主线程中如果使用sleep,将使主线程休棉,切记!
      

  8.   

    子线程可以获得当前进程的有关Session吗?