|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Реализация повторяемых действий
У меня в программе необходимо выполнять последовательно несколько процедур с Базой Данных:
1) Скачать файл 2) Разобрать его в БД 3) На основании данных из БД создать отчёты Я реализовал таблицу "Задачи" и меняю в ней поле "Статус" в процессе выполнения процедур. Сейчас это реализовано очень криво (через цикл While true ... do ) и каждый раз, когда какая-то процедура начинает обрабатываться - выставляется ключ Busy в True и блокируются следующие процедуры. Естественно в это время программа не отвечает на внешние действия. Я так понимаю необходимо реализовать поток, который будет работать с процедурами из основного. Подскажите с алгоритмом. (Может быть есть смысл как-то задействовать TTimer или это тоже будет "быдлокод") |
#2
|
||||
|
||||
Да в принципе использование TTimer в данном случае не такой уж и G-код, этот класс сам на отдельном потоке организован, меньше ручками клаву портить набивкой, только главное не забыть первой строкой в обработчике тика таймера установить у него еnabled = false, а последней обратно в true, тогда не будет повторного срабатывания, пока этот не отработает если выполняются тяжёлые задачи, да и "работать с процедурами из основного" намного легче чем из самописной верёвки
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Uniq! (09.12.2015)
|