我很好奇Thread.Sleep
是如何實現的。我使用Reflector查看了Thread.Sleep
的實現。它調用以下功能:Thread.Sleep執行
[MethodImpl(MethodImplOptions.InternalCall), SecurityCritical]
private static extern void SleepInternal(int millisecondsTimeout);
有沒有人知道它在哪裏定義?我知道其他的選擇,比如Task.Delay。但對實際的實施細節很好奇。
'睡眠()'使線程睡眠。如果您希望線程「做其他事情」並在n毫秒後報告給您,請查看定時器。 – John3136 2014-09-30 01:43:48
當它醒來時,線程可以繼續工作。在離開線程睡覺類似於人類睡覺。 [extern](http://msdn.microsoft.com/en-us/library/e59b22c5.aspx)方法是在外部實現的,在這種情況下,它是由.NET框架提供的黑盒子(反過來框架將調用適當的本地功能,如[WinAPI睡眠](http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v = vs.85).aspx)或什麼)。 – user2864740 2014-09-30 01:47:43
@ John3136我知道其他的選擇,比如Task.Delay。但是對於實際的實現細節感到好奇 – 2014-09-30 02:09:09