我的应用程序处理实时数据。打开Form
时,会创建BackgroundWorker
并获取数据并进行处理。
现在我希望整个周期在 5秒循环中运行,只要Form
处于活动状态或打开状态即可。即如果用户打开form1
并且在5秒内仍然在其上,则BackgroundWorker
将再次进行所有提取和处理。现在,如果用户关闭form1
并打开form2
,则会创建一个新的BackgroundWorker
,并执行与form2
相关的处理。
我已完成BackgroundWorker
部分,但无法决定如何循环BackgroundWorker
。我应该在每5秒触发的BackgroundWorker
内创建一个Timer吗?或者我查看BackgroundWorker
并仅使用计时器?
答案 0 :(得分:1)
是的,你当然可以使用timer对象来完成它,如下所示
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Interval = 5000;
timer.Start();
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
//do the logic..
}