如何在c#.net中每天早上执行一个方法

时间:2015-12-27 14:59:22

标签: c# multithreading .net-4.0 console-application

我想写一个代码,它会在每天早上06:00触发一个方法Processmethod,不知怎的,我设法写下面的代码,但它不是通用的。如何以较少的代码在06:00开始?

while(true) {
    Thread.sleep(Timespan.FromHours(11))
    Processmethod();
}

2 个答案:

答案 0 :(得分:2)

您必须为此实施调度程序任务。有许多dll可以执行此任务。例如,您可以使用Quartz.Net。首先创建一个要执行的工作 -

 public class EmailJob : IJob
{
    public void Execute(IJobExecutionContext context)
    {
       // implement your method here

    }
}

现在将此作业指定给调度程序 -

   public class JobScheduler
{
    public static void Start()
    {
        IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
        scheduler.Start();

        IJobDetail job = JobBuilder.Create<EmailJob>().Build();

        ITrigger trigger = TriggerBuilder.Create()
            .WithDailyTimeIntervalSchedule
              (s =>
                 s.WithIntervalInHours(24)
                .OnEveryDay()
                .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0))
              )
            .Build();

        scheduler.ScheduleJob(job, trigger);
    }
}

现在在global.asax

中的Application_Start中指定JobScheduler.Start();

答案 1 :(得分:2)

您可以尝试以下代码

g