Thread.Sleep()确保DateTime.Now不同的最短时间是多少?

Thread.Sleep()确保DateTime.Now不同的最短时间是多少?

鉴于DateTime具有Ticks属性,您可以认为以下内容就足够了:

Thread.Sleep(TimeSpan.FromTicks(1)); 

哪个会好的,但这可以保证后续调用DateTime.Now不相等?

更新:出现DateTime精度是硬件相关的,所以我将使用以下方法:

 public static void SleepUntilDateTimeChanges() { DateTime now = DateTime.Now; while(now == DateTime.Now) Thread.Sleep(TimeSpan.FromMilliseconds(1)); } 

“滴答”是100纳秒。 或1 / 10,000th毫秒。 Thread.Sleep毫秒运行。 虽然它接受 TimeSpan是正确的,但是将忽略小于一毫秒的值(即与零相同)。 根据@wal,可以保证只有10毫秒的分辨率。 如果等待该数量,则应获取唯一的DateTime实例。

另请参阅Eric Lippert的这个解释 ,它更详细地阐述了DateTime精度。