我有一个应用程序需要每分钟检查一次数据库表.该表按时间索引,因此应用程序需要每分钟运行此检查.
这样做最好的方法是什么?我可以创建一个后台工作线程,但是如果我在每次检查后将其设置为休眠60秒,那么由于调用支票的开销,我最终会错过一分钟.
我记得我检查然后检查的那一刻,每隔15秒说一次,如果分钟已经改变,则进行检查.
或者我应该使用其他方法吗?
我正在使用WPF,VS2008和VB.NET
TIA,
西蒙
该DispatchTimer是你追求的-只需设置所需的间隔,然后附加一个方法Tick事件-工作的享受.
正如MrTelly所说,DispatcherTimer就是这样做的方法.它与Dispatcher队列紧密集成,并确保您的回调在正确的线程上.以下是关于这门课的一些好文章.下面的一些示例代码详细介绍了一个基本示例:
// DispatcherTimer setup DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan(0,0,1); dispatcherTimer.Start(); private void dispatcherTimer_Tick(object sender, EventArgs e) { // Updating the Label which displays the current second lblSeconds.Content = DateTime.Now.Second; // Forcing the CommandManager to raise the RequerySuggested event CommandManager.InvalidateRequerySuggested(); }
Timer与DispatcherTimer
MSDN文档