时间间隔.比较比较
本文关键字:比较 时间 | 更新日期: 2023-09-27 18:14:06
我假设这个逻辑(在评论中解释)是不正确的吗?
// While the current time is before the finish time, sleep the current thread.
// The timer will continue to run the getting of the rates
while (TimeSpan.Compare(DateTime.Now.TimeOfDay,this._finishTime.TimeOfDay) == -1)
在我看了MSDN文档的时间跨度之后。比较一下,我应该寻找正确的参数是1还是0来实现这个功能,但是这个代码已经在那里很多年了。
这在功能上相当于:
while(now < finishTime);
看起来它会正常工作。当它达到0时,当前时间等于finishTime,当它达到1时,当前时间大于finishTime。无论哪种情况,循环都将结束。
更好的方法是:
while(DateTime.Now < this._finishTime)
这并不关心TimeOfDay
,它每天都会产生一个问题(正如@AakashM在评论中指出的)。
它实际上是在等待而现在时间是<完成时间。>
是的,当为0或1时,它将退出循环,但是当为-1时,它将循环