我已经搜索了SO,找到了有关Quartz.net的答案。但这对于我的项目来说似乎太大了。我想要一个等效的解决方案,但要更简单(最好是在代码中)(不需要外部库)。如何每天在特定时间调用方法?
我需要添加一些有关此的信息:
我想要一种更有效的方法来执行此操作,而无需不断检查时间,并且可以控制该作业是否完成。如果该方法失败(由于任何问题),则程序应知道要写入日志/发送电子邮件。这就是为什么我需要调用方法而不是安排工作的原因。
我发现此解决方案在Java中固定时间在Java中调用方法。C#中有类似的方法吗?
编辑:我已经做到了。我在void Main()中添加了一个参数,并创建了一个蝙蝠(由Windows Task Scheduler计划)以使用此参数运行程序。程序运行,执行工作,然后退出。如果作业失败,则可以写入日志和发送电子邮件。这种方法很符合我的要求:)
这就是您真正需要的!
更新: 如果要在应用程序中执行此操作,则有几种选择:
Application.Idle
更新#2 :如果要每60分钟检查一次,则可以创建一个计时器,每60分钟唤醒一次,如果时间到了,它将调用该方法。
像这样:
using System.Timers; const double interval60Minutes = 60 * 60 * 1000; // milliseconds to one hour Timer checkForTime = new Timer(interval60Minutes); checkForTime.Elapsed += new ElapsedEventHandler(checkForTime_Elapsed); checkForTime.Enabled = true;
然后在您的事件处理程序中:
void checkForTime_Elapsed(object sender, ElapsedEventArgs e) { if (timeIsReady()) { SendEmail(); } }