如何在 process.waiforexit() 时运行计时器?

Ngu*_*ang 0 .net c# multithreading timer process

我的表单包含两个控件:button1和timer1

timer1.Interval=1000; timer1.Enable=true;    
Run Code Online (Sandbox Code Playgroud)

当点击按钮1时,Windows上的应用程序将启动。例如:记事本将显示。
但是当记事本显示时,timer1 没有运行。
怎么让timer1这么运行呢??

我的代码:

private void button1_Click(object sender, EventArgs e)
{
    Process pro = new Process();
    pro.StartInfo.FileName = "notepad";
    pro.StartInfo.Arguments = "";
    pro.Start();
    pro.WaitForExit();
}
private void timer1_Tick(object sender, EventArgs e)
{
    DateTime dtime = DateTime.Now;
    string date_time = dtime.ToString("dd/MM/yyyy HH:mm:ss");
    textBox2.Text = date_time;
}
Run Code Online (Sandbox Code Playgroud)

Yuv*_*kov 5

Process.WaitForExit

指示 Process 组件无限期地等待关联进程退出。

您的计时器正在尝试调用timer1_Tick,但您的 UI 线程当前陷入等待进程退出的状态,但它不会退出。

您有两种选择来解决此问题:

  1. WaitForExit如果您确实不需要等待,只需删除对的呼叫
  2. 如果确实需要在进程退出时收到通知,请设置Process.EnableRaisingEventstrue注册该Process.Exited事件