0

我需要编写一个 Windows 服务,它每 X 分钟执行一次相同的操作。就内存管理而言,实现这一目标的最佳方法是什么(例如,允许 GC 清理)

1)while(true)循环,用我自己的逻辑来确保操作每X分钟发生一次。然而,我担心这会阻止 GC 清理。

2)定时器,有一些逻辑来确保操作是否比定时器间隔更长,它确实开始同时执行两次(比1更复杂)

3) 其他建议?

4

1 回答 1

1

在 (1) 和 (2) 中,没有理由担心 GC。

(1) 如果我自己的逻辑不归结为忙循环(这将无缘无故地使用 CPU),则可以。实现该逻辑的最简单方法是SleepX 分钟。

(2) 如果任务定期开始很重要:例如,给定 15 分钟的间隔和从 0:00 开始,下一个任务应该在 0:15 开始,下一个任务应该在 0:30 开始,依此类推,而不是“打折”执行任务时经过的时间。

于 2013-01-31T11:01:18.293 回答