我有一个问题,即min timer事件应该被触发,我将它设置为500ms的间隔,但正如我在logg中看到的,这不能按预期工作。我希望代码在等待0.5秒后再执行,然后再次开始执行!
public void initilize_Rfid()
{
_timerComm = new System.Timers.Timer(500);
_timerComm.Elapsed += CommTimerEvent;
_timerComm.Enabled = true;
}
private void CommTimerEvent(object source, ElapsedEventArgs e)
{
try
{
_timerComm.Enabled = false;
Logg("Inside CommTimerEvent " + _name);
//TALKING TO A SERIALPORT AND DETERMENATING IF TO CONTINUE WITH THE TIMER
if ((_continueTimer)
{
_timerComm.Enabled = true;
Logg("Re-activating timer " + _name);
}
}
catch (Exception ex) { Logg(ex.ToString()); }
}
我可以看到文本“Inisde ComTimerEvent TEST1”,然后大约0.8秒后我得到了“重新激活计时器TEST1”。这一切都很好。但是在此之后我得到了长达3秒的延迟,直到计时器再次发射...我能以某种方式阻止它吗?
答案 0 :(得分:1)
相反,您可以使用DispatcherTimer。以下代码将帮助您每5秒触发一次方法。
DispatcherTimer LabelTimer = new DispatcherTimer();
LabelTimer.Interval = TimeSpan.FromSeconds(5);
LabelTimer.Tick += new EventHandler(TaskTimer_Tick_THROW);
答案 1 :(得分:0)
你错过了:
_timerComm.Start();
这将启动计时器。如果你这样说:
public void initilize_Rfid()
{
_timerComm = new System.Timers.Timer(500);
_timerComm.Elapsed += CommTimerEvent;
_timerComm.Enabled = true;
_timerComm.Start();
}
如果您调用此方法,您的代码应该有效。