我需要编写一个Windows服务,每隔X分钟执行相同的操作。 在内存管理方面(例如允许GC清理),实现这一目标的最佳方法是什么?
1)while(true)循环,用我自己的逻辑确保操作仅每隔X分钟发生一次。我担心这会阻止GC清理。
2)定时器,有一些逻辑可以确定操作是否花费的时间长于定时器间隔,它会同时开始执行两次(更复杂的是1)
3)其他建议?
答案 0 :(得分:1)
在(1)和(2)中都没有理由担心GC。
(1)没关系,如果我自己的逻辑不归结为忙循环(这将无缘无故地使用CPU)。实现该逻辑的最简单方法是Sleep
X分钟。
(2)更可取:给定15分钟的间隔和0:00的开始,下一个任务应该从0:15开始,下一个任务应该从0:30开始,依此类推,而不是“折扣”执行任务所经过的时间。