Вы не сказали, но если ваше приложение использует более одного потока, это может увеличить количество ЦП, которое ОС тратит на ваш процесс (например, прочитайте о временных срезах и переключениях потоков).
ОС также может подкачать некоторые из ваших страниц памяти, таким образом, используя меньше памяти и/или сокращая доступ к памяти в «время ожидания».
Таким образом, если вы используете только один поток и не имеете дополнительных циклов обработки сообщений, просто вызов Sleep() может быть хорошим способом, так как это будет сигнализировать ОС о том, что вам вообще не нужен временной интервал в течение длительного времени, чтобы приходить.
Избегайте YieldThread()/SwitchToThread() и вашего собственного хронометража (например, используя Now()), так как это будет означать, что происходит много переключений потоков, чтобы не делать.... ничего!
Другим методом может быть использование WaitForMultipleObjects с большой тайм-аут, поэтому ваше приложение все еще может отвечать на сообщения.
person
PatrickvL
schedule
17.05.2010