![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Остановить выполнение пророги в задонном месте до опред. события? [D7, XP]
Андрей Пл © (2010-01-05 10:38:00)Здравствуйте. (давно не программировал в Делфи прошу подсказать мне!)
У меня есть бесконечный цикл в дополнительном потоке
как мне остановить дальнейшее выполнение программы в заданном месте до наступления определенного события и как только оно наступило продолжить.
Поясню задачу:
У меня есть бесконечный цикл в дополнительном потоке и есть набор устройств которые я последовательно должен опрашивать(через сом порт) так вот после того как я послал запрос к устройству я должен дождаться когда оно мне ответит как только ответил обработать ответ и дальше продолжить опрос следующего устройства
т.е. все выглядит приблизительно так:
while not Terminated do
begin
for i:=1 to N do
begin
.......
послали запрос к устройству номер i
как то тут остановить выполнение цикла
до наступления события- ответ из устройства ?????
продолжить выполнение с обработкой ответа от устройства номер i
.......
end;
end;
Anatoly Podgoretsky (2010-01-05 17:57:00) [1]Ну тогда Break, выйдешь из цикла for, а не цикла while. Вопрос надо ставить более строго, что бы потом не дезавуировать первое заявление, не заставлять гадать из какого цикла ты именно хочешь выйти.
Андрей Пл (2010-01-05 17:45:00) [2]
> Anatoly Podgoretsky © (05.01.10 15:19) [3]
> Какой смешной вопрос, конечно же Terminated := True
неее)) это мне весь поток закроет.. это я еще шарю...)
Anatoly Podgoretsky (2010-01-05 15:19:00) [3]> Андрей Пл (05.01.2010 10:38:00) [0]
Какой смешной вопрос, конечно же Terminated := True
Юрий Зотов (2010-01-05 13:12:00) [4]> Андрей Пл (05.01.10 10:38)
См. в MSDN: CreateFile, WaitComEvent, ReadFile, CloseFile.
А также раздел Communications Functions и пример Monitoring Communications Events.
Ганя (2010-01-05 11:20:00) [5]см. CreateEvent, SetEvent, ResetEvent в MSDN