我有一个用C#编写的程序。我希望Timer类在特定时间运行一个函数。
例如:在晚上20:00运行功能X
如何使用Timer类做到这一点?
答案 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)
设置计时器以运行一种方法来检查它是什么时间,如果所需的时间已经过去,则运行代码,或者如果没有,则返回休眠状态。