如何在 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 级别声明它。
我在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 级别声明它。