如何在 C# .net 中每天早上执行一个方法
How to execute a method everyday morning in c# .net
我想写一个代码,它会在每天早上 06:00 上午 Processmethod
触发一个方法,不知何故我设法写了下面的代码,但它不是通用的。我怎样才能用更少的代码让它从 06:00 开始?
while(true) {
Thread.sleep(Timespan.FromHours(11))
Processmethod();
}
您必须为此实施调度程序任务。有许多 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();
您可以试试下面的代码
while(true)
{
if(DateTime.Now.Hour == 6 && DateTime.Now.Minute == 0)
Processmethod();
else
Thread.Sleep(1000)
}
我想写一个代码,它会在每天早上 06:00 上午 Processmethod
触发一个方法,不知何故我设法写了下面的代码,但它不是通用的。我怎样才能用更少的代码让它从 06:00 开始?
while(true) {
Thread.sleep(Timespan.FromHours(11))
Processmethod();
}
您必须为此实施调度程序任务。有许多 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();
您可以试试下面的代码
while(true)
{
if(DateTime.Now.Hour == 6 && DateTime.Now.Minute == 0)
Processmethod();
else
Thread.Sleep(1000)
}