.NET Thread.Sleep是否受到DST(或系统时间)更改的影响?

我不确定Windows内核如何处理线程时间…

我正在谈论的DST和任何其他事件,影响一天在Windows上的时间框。

例如, Thread.Sleep将阻塞从零到无限毫秒的线程。

如果内核使用与一天中的时间相同的“时钟”,那么何时使用

(a)某人手动改变一天的时间,或者
(b)一些时间服务器的同步改变了一天的时间,或者
(c)夏时制开始或结束,系统已configuration为响应这两个DST事件,
等等

睡觉线程在任何方式受到影响? 即内核是否处理这样的事件,程序员不需要做什么?

注意 :对于非关键应用程序,这可能是一个谁在乎? 情况。

对于关键应用,知道这个问题的答案是重要的,因为有可能必须编程这样的例外条件。

谢谢

编辑:我想到了一个简单的testing,我在LINQPad 4中运行。

testing包括让线程进入睡眠状态,大约在线程进入睡眠的同时启动一个手动定时器,然后(a)将时间提前一个小时,然后进行第二个testing,将时间移回到两个小时…在这两项testing中,睡眠时间都没有受到影响。

底线:使用Thread.Sleep,不需要担心会影响一天的时间的事件。

这里是琐碎的C#代码:

Int32 secondsToSleep; String seconds; Boolean inputOkay; Console.WriteLine("How many seconds?"); seconds = Console.ReadLine(); inputOkay = Int32.TryParse(seconds, out secondsToSleep); if (inputOkay) { Console.WriteLine("sleeping for {0} second(s)", secondsToSleep); Thread.Sleep(secondsToSleep * 1000); Console.WriteLine("i am awake!"); } else Console.WriteLine("invalid input: [{0}]", seconds); 

Solutions Collecting From Web of ".NET Thread.Sleep是否受到DST(或系统时间)更改的影响?"