Как сделать задержку ровно в 1мс ассемблерной вставкой?
В общем проблема следующая,в моем коде необходимо чтоб пауза длилась ровно 1 мс,но когда я использую средства с++,типо Sleep() или sleep_for то задержка каждого sleep на 1мс больше.Более того ,на разных Windows она разная.Так вот может быть с ассемблерной вставкой получится сделать более точную паузу,которая будет работать на всех windows(7-10) одинаково?Только я совершенно не знаю assembler,и как это сделать.
Ответы (1 шт):
call Sleep годится? :)
Попробуйте изменить подход. Sleep передает управление другим потокам. Попробуйте в цикле постоянно опрашивать время, и как закончится нужное время - идите дальше. Конечно, загрузка проца вырастет, но точность должна быть повыше из-за мениьшего количества переключений.
В С++ - используя high_resolution_clock или QueryPerformanceCounter из WinnAPI.