我不确定Windows内核如何处理线程时间…
我正在谈论的DST和任何其他事件,影响一天在Windows上的时间框。
例如, Thread.Sleep将阻塞从零到无限毫秒的线程。
如果内核使用与一天中的时间相同的“时钟”,那么何时使用
有没有一种方法来检测是否/当一个进程在C#.Net 2.0中启动另一个进程?
从Perl调用.NET
打开Windows资源pipe理器到组合GUID文件夹
如何仅通过Win32 API实现.NET Process.Exited事件
(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);
你知道任何用于Windows的OpenSSH库吗?
使用.NET代码将系统时间同步到域控制器
C# – 如何使用TaskSchedular类列出特定用户的计划任务
调度员 – 它是如何工作的?
控制台用户界面在.net – 是否有可能?
不, Thread.Sleep不受影响。 内核进一步保持UTC的时间。 时区和DST只是分层的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。