如何在 ElapsedEventHandler 之后停止事件?

how to stop the event after the ElapsedEventHandler?

我在wpf中使用定时器project.The间隔是5秒。 如果在 5 秒内,我想在之前重新打开此计时器 timer_Elapsed 已执行,但 timer_Elapsed 方法未执行。 我能怎么做?

public main()
{
      Timer timer=new Timer(5000);
      timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
      timer.start();
}
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
   timer.Stop();
   Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate()
   {  
   });
}

只需设置此 timer.stop()timer.IsEnabled = false;。两者都没有提高其 Elapsed Function。

您正在使用 System.Timers.Timer。如果您想在 Elapsed 事件发生之前的 Interval 内重新启动它,请调用

timer.Stop();
timer.Start();

或者

timer.Enabled = false;
timer.Enabled = true;

显然,要执行此操作,调用代码必须有权访问 timer 变量,因此您可能需要在 class 级别声明它。