Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Синхронизация по времени выполнения.   Найти похожие ветки 

 
debuger ©   (2004-10-28 18:28) [0]

Доброго всем всего.
Есть три процедуры. Одна должна выполнятся 15 раз в секунду, вторая 5 раз в секунду, а ретья по возможности на заднем плане.
Довольно идейно все оформить потоками.
Как это все синхронизировать? Т.е. что-бы первая выполнялясь строго 15 раз в секунду(через каждые 66 мс) и т.д. Конечно же если выполнение процедуры не закончилось, то ее следующее выполнение откладывается до завершения предидущей копии.

Пасиба.


 
debuger ©   (2004-10-28 20:52) [1]

Идейно ли заводить несколько таймеров?


 
Palladin ©   (2004-10-28 22:07) [2]

Довольно строго не получится изза ограничений системы, Windows всетаки далеко не RT. Это во первых, во вторых, если тело процедуры должной выполнятся каждые Nмс выполняется Mмс, где M>N (даю 80% вероятности про 66мс), то естественно выполнять его каждые Nмс не получится. В третьих при использовании таймера событие совсем не обязательно исполнится точно через прошедший интервал. Лучше использовать потоки совместно со Sleep. Но требуемой точности все равно не достигнешь.

Как достичь синхронности выполнения с максимальной точностью. Для этого на все это дело нужно завести один синхронизирующий поток со Sleep(<НОД для всех интервалов>) и соответсвенно считать, считать и еще раз считать, при досчете до нужного интервала для какой либо процедуры запустить (Resume) тот поток который должен это выполнить. Почему нельзя реализовать все процедуры в синхронизирующем потоке. Потому что возникнет погрешность в осчете интервалов при выполнении процедур, они же тоже какое то время занимают. Погрешности не избежать и при процедурах сидящих в разных потоках, но в этом случае она будет меньше.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
1-1099031587
Devel
2004-10-29 10:33
2004.11.14
Unicode


14-1098196845
able
2004-10-19 18:40
2004.11.14
avi2scr &amp; scr поставить, как стандартный ScreenSaver


4-1097009211
DNK_dm
2004-10-06 00:46
2004.11.14
Перехватчик системных сообщений при использовании I/O портов


8-1092082366
Константинов
2004-08-10 00:12
2004.11.14
Run time вставить субтитры в фильм реально ли?


1-1098939874
Restor
2004-10-28 09:04
2004.11.14
Свой тип файла