定时器类和C#

时间:2009-08-06 13:10:09

标签: c#

我有一个用C#编写的程序。我希望Timer类在特定时间运行一个函数。

例如:在晚上20:00运行功能X

如何使用Timer类做到这一点?

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

当计时器触发时,检查时间以及该功能是否在当天运行。如果时间是在20:00之后并且尚未调用该功能,请将其调用。否则,退出并等待下一个事件。

另外,请记住,窗体计时器和System.Threading.Timer的工作方式略有不同。

答案 2 :(得分:2)

使用Timer Tick事件检查(将tick设置为合适的值)然后在tick事件中:

DateTime Now = DateTime.Now;

if(Now.Hours == DateTimeCallX.Hours 
 && Now.Minutes == DateTimeCallX.Minutes 
 && xHasRan == false)
  {
  x();
  xHasRan = true;
  }

DateTimeCallX是DateTime对象,设置为20:00 xHasRan是一个布尔值,表示函数是否已被调用,这将初始设置为false并在调用x后设置为true,这样如果计时器tick在同一分钟再次运行,那么它将不会再次运行该函数。

答案 3 :(得分:0)

您必须计算到晚上20:00之前的毫秒数或使用Quartz.NET之类的调度程序。

答案 4 :(得分:-1)

设置计时器以运行一种方法来检查它是什么时间,如果所需的时间已经过去,则运行代码,或者如果没有,则返回休眠状态。