我并不是真的在写一个闹钟应用程序,但它将有助于阐明我的问题。
假设我的应用程序中有一个方法,我想让这个方法每小时都在整点时钟调用(例如晚上7:00、8:00、9:00等)。我可以创建一个计时器并将其间隔设置为3600000,但最终它会与系统时钟失去同步。或者我可以使用while()
循环和Thread.Sleep(n)
定期检查系统时间,并在达到所需时间时调用该方法,但我也不喜欢这种方法(Thread.Sleep(n)
对我来说是非常糟糕的代码气味)。
我正在寻找的是一种在.Net中让我传入一个未来的DateTime对象和一个方法委托或事件处理程序的方法,但我还没有找到这样的东西。我怀疑Win32 API中有一个可以实现这个功能的方法,但我也找不到那个方法。