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

Вниз

как создать собственную "очередь сообщений" для DDE сервера?   Найти похожие ветки 

 
Arrant ©   (2011-10-19 18:04) [0]

Написана программа DDE сервер, рисует графики и прочее на основе поступающих данных от DDE клиента. Данные поступают не равномерно и сервер иногда захлебывается, несмотря на обработку реализованную в два потока. Клиент прекращает передачу данных с сообщением «Сервер не отвечает», а сервак продолжает отрабатывать данные, пока очередь не закончится. Если программу свернуть обработка идет веселее, но это не выход.  Если окна двигать сворачивать – разворачивать то срыв наступит гарантировано. Вешать Hook не желательно, ещё больше тормознет программу.


 
Jeer ©   (2011-10-19 18:13) [1]

"Погода иногда мне мешает загорать" (С)


 
Arrant ©   (2011-10-19 18:21) [2]

Может другая идея есть как функцию обратного вызова заставить исполнятся в другом потоке. Для него "очередь сообщений" уже создал.


 
Бездомный   (2011-10-19 19:08) [3]

в одном потоке собирать данные, в другом отрисовывать.
А вообще скорее всего где-то ошибка проектирования, раз такие тормоза при прорисовке.


 
Arrant ©   (2011-10-19 19:30) [4]

Видимых тормозов нет. Вычисления идут в отдельном потоке. Функция обратного вызова только копирует данные в специальную очередь. После остановки клиента данные продолжают поступать в функцию пока не выберутся ранее отправленные.


 
Arrant ©   (2011-10-19 19:53) [5]

Была создана модель. Клиент отправляет серверу текущее время в миллисекундах. Сервер в потоке пишет время в лог. Пока сервер не трогаем задержка 0-20 мс. Жмем кнопку на сервере и он рисует прогресс бар 5 сек, это время лог перестает заполнятся. По окончании от рисовки  все данные записываются в лог.
время приёма отправки разница средне
530367546-530367546=0       0.44
530367563-530367562=1       0.43
530373139-530367578=5561      33.93
530373139-530368640=4499      60.66
530373139-530369703=3436      80.76
530373139-530370781=2358      94.23
530373139-530371843=1296     101.30
530373139-530372906=233     102.07
530373157-530373156=1     101.47
530373171-530373171=0     100.88
530373188-530373187=1     100.30


 
han_malign   (2011-10-20 14:52) [6]


> рисует прогресс бар 5 сек, это время лог перестает заполнятся

- дык, нефиг на пять секунд очередь блокировать...



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
15-1318710605
Юрий
2011-10-16 00:30
2012.02.05
С днем рождения ! 16 октября 2011 воскресенье


15-1318859876
lextasy
2011-10-17 17:57
2012.02.05
Посоветуйте учебник по Delphi для школьника


15-1318487112
George
2011-10-13 10:25
2012.02.05
Умер Деннис Ритчи


3-1271355569
istok
2010-04-15 22:19
2012.02.05
D2010 и кодировка в Firebird...


2-1319653394
Дмитрий
2011-10-26 22:23
2012.02.05
Проблемы c Firebird