Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26164
Рейтинг: 2127
#16: 2013-01-31 01:32:43 ЛС | профиль | цитата
petr1976 писал(а):
Можете описать алгоритм?

Я уже описывал, недалече, как несколько постов назад. Немного уточню -- событие обычного таймера есть не что иное, как отработка сообщения WM_TIMER в очереди твоего приложения. Очередь любого приложения выполняется не по прихоти приложения, а как считает нужным система, так что, система поставит сообщение WM_TIMER в твою очередь сообщений, а вот когда система отдаст это сообщение твоему обработчику, это известно только системе. Система следит за сообщениями от твоего приложения и исполнять их по очереди, окончив выполнять сообщения от приложения, система вытаскивает из стека сообщений следующее сообщение и отсылает его твоему приложению, и WM_TIMER далеко не одно сообщение в очереди от системы к твоему приложению. Если система не перерисовывает твою форму, то это событие может прийти сразу, а если двиганул форму или мышку на форме, то только после перерисовки, а если приложений несколько и все что-то рисуют на форме... Вот откуда и беруться эти задержки.
------------ Дoбавленo в 01.32:
Системные таймеры построены по другому принципу и не связаны с очередью сообщений, а работают на перекрытых асинхронных методах. Те когда мы запускаем системный таймер, то указываем метод обработки события по окончанию задержки. И если это асинхронное событие направить на интерфейсный элемент, то может получиться крах программы из-за попытки вклеится в синхронную исполняемую очередь сообщений. Предположим, в данныей момент элемент перерисовывается системой, а ему снова дается команда на перерисовку, не закончив предыдущую
карма: 22

1
Голосовали:login
Ответов: 41
Рейтинг: 1
#17: 2013-01-31 09:01:59 ЛС | профиль | цитата
Спасибо за консультацию, с интерфейсными элементами я понял, а вот пример... VBJscript явно же выполняется еще дольше чем отрисовывается интерфейс
code_30225.txt
карма: 0

0
файлы: 1code_30225.txt [598B] [147]
Гость
Ответов: 17029
Рейтинг: 0
#18: 2013-01-31 10:23:19 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 19:51:36
карма: 0

0
Ответов: 8930
Рейтинг: 823
#19: 2013-01-31 10:26:20 ЛС | профиль | цитата
petr1976 писал(а):
допустим 12:23:12:157 завел и именно в этот момент произошло событие
157 -- как я понял миллисекунды? Даже для стыковки с МКС такая точность не нужна, да и в компьютере Вы её не найдёте, хоть 100 раз на день синхронизируйтесь
petr1976 писал(а):
Можете описать алгоритм?

code_30226.txt
карма: 19

0
файлы: 1code_30226.txt [1024B] [126]
Ответов: 41
Рейтинг: 1
#20: 2013-01-31 10:59:30 ЛС | профиль | цитата
dialin.customers.u-l.ru писал(а):
вода мокрая

Чем можно заменить VBJscript?
Леонид писал(а):
157 -- как я понял миллисекунды?
да. 1 раз в секунду синхронизирую SP TimeSync.
Пробую так, но даже если убрать весь интерфейс это будет выдавать ошибку при замене таймера потому что VBJscript не успевает выполнится(
code_30228.txt
Леонид писал(а):
code_30226.txt
а тут получает мили секунды вообще не задействованы?

карма: 0

0
файлы: 1code_30228.txt [1.9KB] [160]
Ответов: 8930
Рейтинг: 823
#21: 2013-01-31 11:08:51 ЛС | профиль | цитата
petr1976, миллисекунды учитываются в задании, при использовании таймера с его шагом в 1/64 сек и компонента Time в качестве часов с таким же шагом точность соответветствующая 1/64 сек (~16 миллисекунд). Вряд-ли на Вашем компьютере есть часы с меньшим шагом, какой бы супер-пупер Ява-скрипт не применили
карма: 19

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#22: 2013-01-31 11:12:02 ЛС | профиль | цитата
Леонид писал(а):
точность соответветствующая 1/64 сек (~16 миллисекунд)

Забыл добавить -- при стандартных настройках системы. Есть некоторые реестровые настройки, которые могут уменьшить или увеличить этот интервап, но в небольших пределах
карма: 22

0
Ответов: 41
Рейтинг: 1
#23: 2013-02-03 17:31:47 ЛС | профиль | цитата
Тогда другой вопрос, как достигнуть максимально возможной точности?)
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#24: 2013-02-03 18:11:59 ЛС | профиль | цитата
petr1976 писал(а):
как достигнуть максимально возможной точности?

Вопрос -- для чего конкретно, куда будет использоваться это событие
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#25: 2013-02-03 18:28:52 ЛС | профиль | цитата
petr1976 писал(а):
как достигнуть максимально возможной точности
Прогаммировать в DOS.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 41
Рейтинг: 1
#26: 2013-02-04 09:38:35 ЛС | профиль | цитата
nesco писал(а):
Вопрос -- для чего конкретно, куда будет использоваться это событие

Для отправки post запроса, ping 0 млс
карма: 0

0
26
Сообщение
...
Прикрепленные файлы
(файлы не залиты)