2010-11-09 46 views
0

我在其中触发每miniutes C#.NET编写的一个窗口服务......我想火邮件到我的经理在说某某日期每月....这个任务SHLD repeted上在同一天,每月...所以任何一个可以告诉我如何做到这一点..?我的意思是说,我会写SHLD得到每个月的同一天执行的代码块...程序器在窗口服务

+3

是否有一个原因,你不只是使用Windows任务调度程序呢? – 2010-11-09 06:05:38

回答

2

这会给你的天/小时/分钟/等数量的时间跨度。直到下个月的第一天:

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

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

你可以用它来设定的时间间隔定时器。

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任务调度......好老式的方法: )