最近碰到一个很有意思的bug,当时图方便,就使用了DateTime.now来判断是否timeout,是否要发event。
然后现在收到一个bug report,和daylight saving(夏令时)有关,再看一下这段代码,确实有问题。
如果夏令时往回拨一小时,在接下去的一个小时里,这个判断都是无效的,event就不会发出。
解决方法倒是不难,因为之前已有waitfor event with timeout,再用一个就可以了。
很多看上去没有问题的代码,实际使用中会有各种意外,特别是和时间,locale有关的,要特别小心了。