2013-03-16 2 views
0

Я хочу написать небольшой таймер предупреждения на окнах с помощью C++ и msvc2010. Таймер должен вызвать сообщение о состоянии через пару минут. Я знаю, как проверить системное время с помощью C++, и я знаю, что в windows api есть функция сна. Как я могу реализовать таймер с очень небольшой загрузкой процессора? Например, я не хочу проверять системное время каждые пару миллисекунд, чтобы вызвать сообщение о состоянии, когда достигнуто время запуска. Я могу создать загрузку процессора при использовании таких вещей, как sleep (600000), в дополнительном потоке или есть более эффективные способы подождать пару минут и выполнить некоторый код впоследствии?C++ предупреждающий таймер с небольшой загрузкой процессора

ответ

1

Вы действительно можете заняться - подождите и опросите время. Даже Sleep(1) будет достаточно, чтобы ваша программа была едва измерима.

Раньше я делал это «назад в день», и даже на моем PII 233 Mhz, работающем с несколькими потоками, это почти не вдавалось в использование ЦП.

+0

спасибо за быстрый ответ математику1975 и Иоахим Пилеборг. Так что это не худшая идея создать поток и использовать сон (600000), чтобы подождать 10 минут? Я могу принять неточность 100 мс. – wildcat

+0

@ user1993851 Совсем наоборот, ваша программа ничего не будет делать около десяти минут, и ни в коем случае я ничего не имею в виду. –

+0

ok, спасибо .. – wildcat

1

Вы можете создать поток, написать непрерывный цикл, внутри которого вы просто спите в течение интервала времени, который должен запускать ваш триггер, а затем распечатать ваше сообщение. Если вам нужно запустить его через 2 минуты, зачем выбирать несколько небольших значений сна и проверять время? Это будет пустой тратой времени процессора.

Смежные вопросы