Любая разница между ядром3232 Sleep и Thread.Sleep () - PullRequest
5 голосов
/ 01 марта 2011

Есть ли какая-либо разница (производительность, реализация. Что угодно) между следующим:

i)

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

.. затем вызов функции Sleep

ii)

Thread.Sleep()

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

На самом деле есть большая разница.

В этом блоге объясняется, почему управляемые потоки никогда не должны делать неуправляемую блокировку, если это возможно. официальная документация MSDN содержит те же правила без каких-либо базовых деталей.

P.S. Thread.Sleep является признаком плохо разработанной программы .

0 голосов
/ 01 марта 2011

Я бы так не думал.Они оба работают только в текущем потоке.

Будьте внимательны, хотя при использовании функции Sleep в главном потоке программы, которые зависят от синхронизированной синхронизации, обычно вызывают проблемы при изменении внешних конфигураций.

Использование Sleepв темах поддержки или прослушивания обычно это не проблема.

...