|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.08.2016, 11:59 | #1 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Проблемка отработки потока нескольких нажатий ЛКМ
Программа ( назовем ее принимающей клики) по таймеру- 1сек опрашивает сервер. За 1 раз может получить от 0 до нескольких координат для кликания ЛКМ.
Для отработки клика используется Sleep(100); перед нажатием, Sleep(100); после нажатия и еще Sleep(300); На сервер координаты кликов приходят от другой программы delphi 7. Я проверял, что даже при высокой частоте кликов от сигнальной ( буду ее так называть, программа которая посылает координаты кликов на сервер) с частотой порядка 0.5 сек принимающая программа получает координаты всех кликов. Получается, если не учитывать сами алгоритмы, то отработка 1 клика занимает примерно пол секунды. Проблема в том что реально отрабатываются не все клики, если частота кликов высокая. Несколько вопросов: 1) Если таймер 1 раз в секунду, но в нем получается суммарная задержка вместе с Sleep() превышает 1 сек, то новая итерация таймера не начнется пока не отработают все алгоритмы и Sleep() в текущей итерации? ( т.е. тут врятли может быть причина?) 2)В чем может крыться отработка не всех кликов? Последний раз редактировалось Illusiony; 07.08.2016 в 12:08. |
07.08.2016, 13:18 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Делфийский таймер синхронный, т.е. сообщения становятся в очередь и может происходить их объединение, другими словами утрата, если время выполнения превышает интервал таймера
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
07.08.2016, 13:42 | #3 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
Объединение и утрата две разные вещи. С объединением вроде должно все норм быть, а вот утрата как происходит? |
|
07.08.2016, 14:02 | #4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
07.08.2016, 14:08 | #5 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Да, но все действия в запущенных итерациях все равно должны отработать полностью?
Да логично, что за 1 минуту если внутри таймера действия были больше чем интервал таймера, то и кол итераций в минуту будет меньше чем предпологалось. |
07.08.2016, 14:10 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А sleep обязателен?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
07.08.2016, 14:15 | #7 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
без него программа по которой я кликаю просто не успеет отработать нужные действия+ в этой программе( назовем ее внешней) есть некоторые анимации, которые могут длится весьма долго. Кстати я проверял прохождение кликов лишь по результату действий в этой внешней программе, это как бы не полностью достоверные данные о реальных клика. Нужно мне сделать програмку которая отследит реальные нажатия кнопок.
Сейчас займусь этим. |
07.08.2016, 16:45 | #8 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Протестил. Оказалось, что абсолютно все клики проходят. Получается что проблема во внешней программе - длительности ее анимаций.
В общем вопрос тогда совсем в другом. Спасибо за внимание. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# Как записать результат отработки формы в файл? | αλεχ11 | C# (си шарп) | 3 | 01.06.2014 17:27 |
Непонятный алгоритм отработки функций | Jopses | JavaScript, Ajax | 1 | 18.02.2013 09:21 |
Запуск скрипта Python и ожидание его отработки | Stilet | Win Api | 7 | 21.11.2012 14:59 |
Обработка нескольких нажатий клавиатуры и отрисовка объекта отдельно! | Lorem | Помощь студентам | 0 | 02.01.2012 18:49 |