Windows服务中的调度程序

时间:2010-11-09 06:02:32

标签: c#

我在C#.NET中编写了一个Windows服务,每个小时都会触发...我想在xyz日期每个月向我的经理发送一封邮件....这个任务每个月都在同一个地方重复约会...所以任何人都可以告诉我该怎么做..?我的意思是说我将编写的代码块在每个月的同一天执行...

2 个答案:

答案 0 :(得分:2)

这将为您提供天数/小时/分钟/等的TimeSpan。直到下个月的第一天:

TimeSpan ts = DateTime.Now.AddDays(
  (DateTime.Now.Day - 1) * -1).AddMonths(1) - DateTime.Now;

在下个月的第一天午夜使用DateTime.Today

您可以使用它来设置计时器的间隔。

答案 1 :(得分:1)

这看起来像是quartz.net

的完美用法
var schedulerFactory = new StdSchedulerFactory();
var scheduler = schedulerFactory.GetScheduler();
scheduler.Start();

var jobDetail = new JobDetail("myJob", null, typeof (MyFooImplementation)); // MyFooImplementation needs to impelement IJob
var trigger = TriggerUtils.MakeMonthlyTrigger("myJobTrigger", 1, 0, 0);
scheduler.ScheduleJob(jobDetail, trigger);

可以找到.MakeMonthlyTrigger上的更多信息here

否则我会得到Windows任务调度程序......这种老式的方式:)