2010-11-09 79 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任務調度......好老式的方法: )