kernel32.dll Sleep和Thread.Sleep()之间的任何区别

以下内容之间是否存在任何差异(性能,实施……无论如何):

一世)

DllImport("kernel32.dll")] public extern static void Sleep(uint msec); 

..然后调用睡眠function

II)

 Thread.Sleep() 

实际上,这有很大的不同。

这篇博客文章解释了为什么托管线程永远不应该进行非托管阻塞。 官方MSDN文档具有相同的准则,没有所有底层细节。

PS Thread.Sleep是一个设计不佳的程序的标志 。

我不这么认为。 它们都只在当前线程上工作。

但是,在主线程中使用Sleepfunction时要小心,因为依赖于同步时序的程序通常会在外部配置发生变化时导致问题。

但是,在支持或侦听线程中使用Sleep通常不是问题。