在不使用计时器的情况下收听或等待特定时间



有没有办法每天收听或等待特定的时间(例如上午11:30(。我知道的唯一方法是设置一个timer,它每60秒检查一次当前时间,这是我使用backgroundworker实际实现的。但是,有没有一种方法可以等待并侦听指定的时间(类似于监视目录更改(,然后采取一些操作?

提前谢谢。

通常,与其让驻留在内存中的程序等待,不如为此设置计划任务(或linux上的cron作业(。计划任务将在适当的时间运行程序。如果需要,该程序仍然可以检查(验证(预期时间,但如果每天只运行一次,它不应该总是在后台使用资源。

计划任务也更好,因为它可以从计算机重新启动、崩溃等情况下自动恢复。如果发生了中断程序正常运行的事情,计划任务仍然可以运行。

这在.Net世界中尤其重要,因为.Net要求您非常小心地编写长寿命程序,以避免地址空间碎片。.Net垃圾收集器擅长释放旧内存并将其返回到操作系统,但随着时间的推移,程序的虚拟地址空间可能会变得支离破碎,最终将无法再分配新内存。

即使这是一个更大程序的一部分,其中也有其他基于用户交互的事情发生,将其拆分为一个单独的过程仍然是一个好主意。

最新更新