Вверх ↑
Ответов: 2125
Рейтинг: 159
#1: 2006-12-05 11:27:23 ЛС | профиль | цитата
Vitaliy писал(а):
С какой периодичностью

На данный момент каждые 50 миллисекунд, но можно это вынести в свойства (была такая идея). Цель этой точки - проверять наличие необходимой работы, и если надо что-то делать - то выполнить эту работу. Эту точку использовать необязательно, я даже хотел вынести её в опциональные, как onPause и onContinue. Кстати, если сервис приостановить, то события onStep не будут генерироваться.

Vitaliy писал(а):
процесс занимает все свободное процессорное время

Нет, если то, что происходит по событию onStep, выполняется быстрее, чем 50 миллисекунд. Обычно, проверка наличия необходимых для выполнения задач - это лишь проверка определённого флага (или, например, определённого времени или наличия какого-то файла), и выполняется очень быстро Остальное время сервис находится в режиме ожидания.

Vitaliy писал(а):
Пробовал поставить таймер (компонента Sleep)

Использовать компонент Sleep не рекомендую, т.к. текущая реализация "занимает все свободное процессорное время". Кстати, если используешь doSleep, учти, что задержка в микросекундах, для задержки в миллисекундах есть doSleepMks.

Vitaliy писал(а):
Компонент Timer дает обратный результат ... возможно постоянно перезапускается

Логично.


А вот с компонентами, которые работают только при наличии обработчика очереди сообщений (дочерняя форма и всё что на ней, а также, скорее всего, TCP сокеты) пока не получится, т.к. его пока нет. Я думаю, надо будет добавить это в основной цикл работы сервиса.
А может и не надо, работа с интерфейсными элементами - это не для сервиса
карма: 1

0