![]() |
1
85
我不会使用thread.sleep()。使用计划任务(如其他人所述),或在服务中设置计时器,该计时器定期触发(例如,每10分钟一次),并检查自上次运行以来日期是否发生了更改:
|
![]() |
2
69
退房 Quartz.NET .您可以在Windows服务中使用它。它允许您基于配置的调度运行一个作业,甚至支持一个简单的“cron job”语法。我已经取得了很大的成功。 下面是它的一个使用示例:
|
![]() |
3
20
日常工作?听起来应该只是一个计划任务(控制面板)-这里不需要服务。 |
![]() |
4
15
必须是实际的服务吗?您可以只使用Windows控制面板中的内置计划任务吗? |
![]() |
5
3
我用计时器来完成这项工作。 运行一个服务器计时器,让它每60秒检查一次小时/分钟。 如果是正确的小时/分钟,那么运行您的流程。 实际上,我把它抽象成了一个我称为OncedayRunner的基类。 让我把代码整理一下,然后贴在这里。
方法的要点在e.signalTime.minute/hour检查中。 在那里有一些钩子用于测试等等,但是这就是您经过的计时器可以让它全部工作的样子。 |
![]() |
6
2
正如其他人已经写的,在您描述的场景中,计时器是最好的选择。 根据您的具体要求,可能不需要每分钟检查当前时间。 如果不需要执行操作 确切地 在午夜,但在午夜后一小时内,你可以去 Martin's approach 只检查日期是否更改。 如果你想在午夜执行你的操作的原因是你期望你的计算机工作负荷很低,那么最好小心:同样的假设通常是由其他人做出的,突然你有100个清理操作在凌晨0:00到0:01之间启动。 在这种情况下,您应该考虑在不同的时间开始清理。我通常不在上班时间做这些事情,而是在半小时内做(我个人喜欢凌晨1点30分) |
![]() |
7
1
我建议你用一个计时器,但把它设置为每45秒检查一次,而不是每分钟。否则,您可能会遇到这样的情况:在重载情况下,会错过对特定分钟的检查,因为在计时器触发的时间和代码运行和检查当前时间之间,您可能错过了目标分钟。 |
![]() |
8
0
您也可以在这里尝试任务调度库 http://visualstudiogallery.msdn.microsoft.com/a4a4f042-ffd3-42f2-a689-290ec13011f8
实现抽象类
|
![]() |
9
0
对于那些发现上述解决方案不起作用的人,这是因为
|
![]() |
10
-2
试试这个:
|
![]() |
prmph · javascript上抢占式后台工作调度的通用解决方案 7 年前 |
![]() |
Terry Pang · 当涉及多个通道时,select如何工作? 7 年前 |
![]() |
martine · 索引器:索引2超出大小为2的轴0的界限(列表调度) 7 年前 |
![]() |
user2887596 · scala中长时间间隔的任务调度 7 年前 |
|
Kevin SUN · 具有实时任务的多核Linux软锁定 9 年前 |
![]() |
Mounhim · Quartz.net的日常工作每分钟都在执行 11 年前 |