计划作业计划(以毫秒为单位)

时间:2020-09-28 16:25:25

标签: c# scheduled-tasks

如何在特定的毫秒内完成工作? 我想在02:00:00.200.200、02:00:00.400、02:00:00.600和...进行工作。这在C#中可能吗? 工作可能需要更长的时间。能按时完成吗?例如,在后台运行?

2 个答案:

答案 0 :(得分:0)

您可以尝试通过winmm.dll timeBeginPeriod函数调用来提高计时器的准确性

查看此链接how to set timer resolution from C# to 1 ms?以获得更多信息

答案 1 :(得分:0)

@jdweng我使用以下代码,但是作业没有在200、400、600等毫秒内完成。时间表也从2:0:0.500

开始
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();

await scheduler.Start();
IJobDetail job = JobBuilder.Create<HelloJob>()
    .WithIdentity("job1", "group1")
    .Build();
ITrigger trigger = TriggerBuilder.Create()
    .WithIdentity("trigger1", "group1")
    .StartAt(DateBuilder.DateOf(2, 0, 0))
    .WithSimpleSchedule(x => x
                        .WithInterval(TimeSpan.FromMilliseconds(200))
                        .WithRepeatCount(5))
    .Build();

await scheduler.ScheduleJob(job, trigger);

await Task.Delay(TimeSpan.FromSeconds(60));

await scheduler.Shutdown();
相关问题