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

Вниз

Application.ProcessMessage в службах   Найти похожие ветки 

 
Avsam   (2004-02-12 16:48) [0]

Приложение написано как служба (Service).
Надо использовать Application.ProcessMessages.

Чем его и как заменить? Или может он и не нужен?


 
Семен Сорокин   (2004-02-12 16:54) [1]

сначала расскажи зачем тебе Application.ProcessMessages в сервисе?


 
avsam   (2004-02-12 16:59) [2]

сервис работает с коммуникациями.
Посылает команду и надо подожать 10 секунд ответ.

t1 := GetTickCount;
repeat
// Application.ProcessMessages;
until GetTickCount - t1 > ConstTime

Чем его заменить?


 
Тимохов   (2004-02-12 16:59) [3]

sleep


 
Семен Сорокин   (2004-02-12 17:01) [4]

в твоем случае можно заменить точкой с запятой - ; :))
а вообще вместо цикла используй [3]


 
avsam   (2004-02-12 17:03) [5]

То есть, я так понял, система сама отдает время для других процессов?


 
Digitman   (2004-02-12 17:03) [6]


> Надо использовать Application.ProcessMessages


зачем ?


 
avsam   (2004-02-12 17:04) [7]

2 Digitman:
См. [2]


 
Тимохов   (2004-02-12 17:04) [8]


> Digitman © (12.02.04 17:03) [6]
>
> > Надо использовать Application.ProcessMessages
>
>
> зачем ?

А вдруг тики без этого течь не будут? :)))))


 
Семен Сорокин   (2004-02-12 17:06) [9]

То есть, я так понял, система сама отдает время для других процессов?
ну ты же нигде в своей программе не добавляешь Application.ProcessMessages для того чтобы, например в WindowsCommander отрисовалась иконка?


 
Digitman   (2004-02-12 17:06) [10]


> Чем его заменить?


нормальным асинхронным таймером


 
Тимохов   (2004-02-12 17:08) [11]

чем ему sleep то не походит?
Зачем асинхронный таймер?


 
Digitman   (2004-02-12 17:11) [12]


> avsam © (12.02.04 16:59) [2]
> сервис работает с коммуникациями.


угу... и в документации на "коммуникации" прямо так и написано : выхжать с пом. GetTickCount время t1

правильно я телепатировал ?


 
avsam   (2004-02-12 17:23) [13]

2 Digitman:
Нет. Коммуникация происходит не напрямую.
То есть сервис не работет с железом. Данные передаются через базу данных. Сервис пишет в таблицу запись. Другая программа, которая работает на другом компе, периодически считывает и посылает в Beckhoff-контроллер. Ответ приходит и помещается в другую таблицу, откуда сервис его уже и читает.
Это немного успрощенно, но принцип такой.
Время не критично. Плюс-минус 10 секунд роли не играет.

Вот этот период сервис и должен выждать.


 
Тимохов   (2004-02-12 17:24) [14]


> avsam © (12.02.04 17:23) [13]

Делай sleep - и дело с концом


 
Семен Сорокин   (2004-02-12 17:25) [15]

avsam © (12.02.04 17:23) [13]
тогда Sleep тебя полностью устроит.


 
Digitman   (2004-02-12 17:29) [16]


> Ответ приходит и помещается в другую таблицу, откуда сервис
> его уже и читает


на то есть понятие "подтвержденная транзакция"


 
avsam   (2004-02-12 17:48) [17]


> Digitman © (12.02.04 17:29) [16]


Может и есть. Не в курсе.
Правда, контроллер не один, а несколько десятков.
Предагаешь, посидеть и переписать весь софт?



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

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

Наверх




Память: 0.47 MB
Время: 0.036 c
1-79722
Senator
2004-02-12 16:59
2004.02.25
ComboBox


1-79776
Defunct
2004-02-11 02:35
2004.02.25
Как избавиться от мерцания RichEdit?


14-80215
Clift
2004-02-05 17:38
2004.02.25
ХР


1-79826
Amirka
2004-02-11 10:10
2004.02.25
Использование сторонних dll


14-80277
Леха
2004-02-03 21:07
2004.02.25
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский