В настоящее время я пишу приложение на С#, где мне нужно запустить таймер прибл. каждые 5 миллисекунд. Из некоторых исследований, как представляется, лучший способ сделать это включает p/invoking timeBeginPeriod (...), чтобы изменить разрешение системного таймера. Он хорошо работает в моем примере кода.
Я нашел интересное предупреждение об использовании этой функции в блоге MSDN Ларри Остермана в этой записи:
Адам: вызов timeBeginPeriod также увеличивает точность GetTickCount.
использование timeBeginPeriod - это ужасно плохая идея в целом - мы активно удаляем все ее применения в Windows из-за последствий энергопотребления, связанных с ее использованием.
Существуют лучшие способы обеспечения своевременного выполнения потока.
Кто-нибудь точно знает, почему это происходит, или что эти "лучшие способы" (которые не определены в потоке) могут быть? Сколько лишней мощности мы говорим?