定时器每周抛出一次方法 - C#,Asp.NET

时间:2011-02-28 18:13:08

标签: c# asp.net timer

我对C#和编码很新。我正在寻找一个示例/开源定时器函数,用于在特定时间每周一次抛出基本方法(例如电子邮件通知)。在做了一些研究之后,我发现使用Timer而不是Windows服务是明智的,因为它的工作量非常小。

我在CodePlex和Code Project上找到了几个计时器API,但由于我对C#的了解很少,我在使用这些示例时遇到了麻烦。

有没有人知道我可以使用的简单计时器是初学者友好的,还有一个漫步?或者使用System.Timers有一种更简单的方法吗?

我的最终目标是拥有一个定时器,它将在每个星期一的上午8:00触发一个方法。

编辑:我相信我的帖子应该更加详细。我选择不使用Windows任务计划程序的原因是因为我调用的方法比调用Windows任务更复杂。

当计时器到达预定时间时,它将触发一个方法,该方法在数据库中查询在特定时间范围内需要服务的项目。然后,这将循环显示将其添加到电子邮件中的项目,该电子邮件将发送到该仓库的管理员。

如果我没有弄错,那么无法通过Windows任务计划程序完成?

5 个答案:

答案 0 :(得分:7)

使用计时器是没有意义的。您的目标是在特定时间触发功能。如果您的服务器重新启动怎么办?您的计时器是否计算重启时间与星期一上午8:00之间的确切时间?

IMO,使用控制台应用程序和Windows任务计划程序。

对编辑的回应:当然,您可以使用Windows任务计划程序。调度程序的唯一功能是执行任务。它执行的任务的复杂性没有规则。此外,查询数据库和发送电子邮件并不是一项过于复杂的任务。 :)

答案 1 :(得分:2)

我将Quartz.NET用于cron作业。 这也适用于托管平台,您无法访问Windows服务。

你正在寻找的东西是微不足道的。 查看他们tutorial中的第一个示例。

http://quartznet.sourceforge.net/tutorial/lesson_1.html

答案 2 :(得分:1)

我不同意您的研究,并将其放入由Windows Scheduler运行的控制台应用程序中。

答案 3 :(得分:0)

由于您对编码很陌生,最简单的方法是创建一个应用程序(基于控制台的c#应用程序最好)并使用

  

任务计划程序

内置于Windows中,每周一早上8点启动应用程序。这是一个简单的tutorial

答案 4 :(得分:0)

cron工作将是一个更好的选择。如果您的网站在周一早上8点停电,会发生什么?使用cron,只要服务器正在运行,它就可以执行您的请求。