事件与while(true)循环

Kar*_*bæk 2 c# windows-services event-handling

背景如下:Windows服务,应该在给定时间每天执行一次操作.

我目前通过创建一个计时器并添加了ElapsedEventHandler来实现这一点.事件每隔t分钟触发一次,然后检查我们是否通过了配置的时间.如果是,则执行操作,如果没有,则没有任何反应.

一位同事问我,是否只有一个包含sleep()的while(true)循环并不容易,当然还有相同的逻辑来检查我们是否已经过了行动的时间.

问题:可以说一个事件与一段时间(循环)的"稳健性"吗?我正在考虑线程"死"的情况,因此while(true)循环退出.这种情况在另一种情况下是否"更可能"发生?

sel*_*bie 8

我既不投票也不投票.

如果您的服务闲置一整天,定期唤醒(并分页代码)以查看"是否该运行",那么这是一个更适合Windows任务计划程序的任务.您可以通过任务计划程序以编程方式安装每天运行的任务.然后你的代码根本不需要运行,除非是时候运行了.(或者,如果您的服务确实需要在后台运行,则调度程序中的任务可以指示您的服务唤醒而不是计时器逻辑).