回答
您可以使用下面的代码
System.Timers.Timer _timer1 = new System.Timers.Timer();
_timer1.Elapsed += new ElapsedEventHandler(_timer1_Elapsed);
//1 second
_timer1.Interval = 1000;
_timer1.Start();
//this event will be fired each 1 second
private void _timer1_Elapsed(object sender, ElapsedEventArgs e)
{
}
你应该是可以的,是的。 Ghyath Serhal已经告诉你如何使用计时器课程。唯一缺少的是如何在特定的时间做到这一点。这应该是非常简单的 - 当您设置计时器时,只需花时间让您的操作发生和当前时间,即可在几秒钟内找到差异,并使用它来扩大时间间隔。您还需要将AutoReset属性设置为false,以便它不会立即再次开始倒计时。
如果您改变事件发生的时间,您只需要用触发器将其挂钩并将定时器更新为新时间即可。
编辑补充:如果有人要改变系统时间,可能会导致这个计划出现问题。我不确定您是否可以轻松地使用该功能重置定时器。我猜可能不相关。 :)
你可能(并不知道更多关于你的应用程序,我不能肯定地说)想看看它有点不同。您可以轻松编写一个应用程序,除了轮询什么时间以外,什么都不做,然后运行您需要做的任何事情,但这会让您的应用程序停滞不前,无所事事,而是大部分时间都会占用资源。
相反,也许你可以考虑创建一个计划任务,它可以让你在任何给定的时间运行你的应用程序。任务计划程序记录在http://msdn.microsoft.com/en-us/library/aa383614(VS.85).aspx处,并且在http://taskscheduler.codeplex.com/处有一个托管包装程序。 (它说它可以在XP或更好的版本上运行,所以希望它能够满足你的需求)。
祝你好运,
与计时器的问题是,它并不能保证所经过的事件将恰好在正确的时间被称为 - 所有你知道的是,它会一次比大后调用间隔。 解决方案取决于您感兴趣的时间的分辨率 - 例如,如果您需要检查每个小步骤,如果发生特定事件,您可以设置一个计时器,以每小时提起事件,然后使用DateTime.Now来检查如果系统时间是事件发生的时间。
一个好的策略是始终期望计时器已过时事件发生在Interval设置后几秒发生,具体取决于系统的繁忙程度。
- 1. flex-timer在rollOver上触发
- 2. C++ Timer不工作?
- 3. 在c中手动触发事件#
- 4. Visual studio c#timer不起作用
- 5. 如何在使用Appcelerator的动画方法中触发操作?
- 6. 动态调度作业:在groovy中使用cron触发器
- 7. 触发器在操作中未触发
- 8. 如何在GridView中使用Timer自动分页使用javascript
- 9. Jquery Timer在IE9中不起作用
- 10. C++ timer linux
- 11. Servlet在启动时使用timer类在常规时间间隔后触发事件吗?
- 12. Swift`Timer`在指定的时间间隔之前触发
- 13. 在C中使用UpdatePanel和Timer进行延迟加载#
- 14. 如何从C++中触发QML动画
- 15. 如何在C#中只引发1个Timer事件?
- 16. SVPullToRefresh在触发时不会触发动作处理程序
- 17. 如何在Android中使用Java Timer?
- 18. 在gridlink上使用锚点触发gridlink.click()和anchor.click()动作
- 19. UITapGestureRecognizer动作没有触发
- 20. p:commandLink不会触发动作
- 21. 触发动作withing元素
- 22. 触发动态工作集
- 23. 触摸CALayer时触发一个动作?
- 24. 自动触发在MySQL中
- 25. 如何使用滚动顶部在CSS中触发动画?
- 26. 在Visual Basic中使用Timer进行动画?
- 27. 如何在Servlet启动代码中使用J2EE Timer Service API?
- 28. 用react-redux触发事件的动作
- 29. 从移动应用触发SAS作业
- 30. 在SWF加载动作触发事件?