![]() |
Нужна задержка с точностью 0.1 сек по крайней мере
|
Задержку с такой точностью реально организовать обычным Sleep().
|
Sleep не позволяет на самом деле делать задержки менее 37 милисекунд. Даже если ему поставить 1 мсек - то реально будет 37 или более!!! Как быть???
|
Guest
0,1 с - это 100 мс, так что аккуратнее (кроме того, 37 или нет - зависит от очень многих факторов, включая прежде всего версию операционной системы). 1) Какую задержку надо и с какой точностью она должна отмеряться? 2) На каких системах это должно работать. |
1. Задержка нужна с точностью 10 мсек.
2. Хорошо бы чтоб на всех, но для начала Win2000, NT4. Но желательно знать как бороться с этой проблемой во всех операционных системах. Спасибо |
Guest
Для таких задержек можно использовать WaitableTimer или даже обычный, если заюзать код ниже. Еще раз, величина задержки и точность ее отмеривания - разные вещи. Ясно, что величина больше, чем точность, но можно задаться целью отмерять задержки в 1 секунду с точностью 1 мс, то есть, выполнение будет происходить через 1 секунду +- 1 мс. А у вас 10 мс - это видимо величина задержки (интервал), с какой точностью его надо отмерять? Еще советую (для NT) выполнить такой код: Код:
#define NTSTATUS int Устанавливает разрешение системного таймера для текущего процесса на минимально возможное (в большинстве случаев - 1 мс). |
Странно, а как же квант времени, выделяемый на одну задачу? Еще меньше кванта? Я то боролся по старинке с этим. Запускал фоновый процесс на 2 сек, который считал количество пустых циклов и потом считал, что это быстродействие компьютера, а там где задержка - циклов меньше, естественно. :) Тупо но работало и меньше 1 мс
|
Crew
Только такие решения систему грузят. |
vasketsov
Цитата:
А что за тип данных PULONG ? Я такого не встречал еще. [s]Исправлено: Crew, 5:55 15-01-2003[/s] |
Crew
1) из ntdll.dll, написано внизу сообщения. 2) PULONG - указатель на ULONG. |
vasketsov
Цитата:
А не для NT какой код надо заюзать? нужна выдержка в 2 мс, если 2.5 мс будет, то код уже нерабочий, а с циклом пустым работало одинаково хорошо с любым приоритетом, хоть и Цитата:
|
Crew
можешь мультимедийные таймеры попробовать использовать, если есть они на 9x. |
Время: 00:49. |
Время: 00:49.
© OSzone.net 2001-