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

Вниз

Остановить выполнение пророги в задонном месте до опред. события?   Найти похожие ветки 

 
Андрей Пл   (2010-01-05 10:38) [0]

Здравствуйте. (давно не программировал в Делфи прошу подсказать мне!)
У меня есть бесконечный цикл в дополнительном потоке
как мне остановить дальнейшее выполнение программы в заданном месте до наступления определенного события и как только оно наступило продолжить.
Поясню задачу:
У меня есть бесконечный цикл в дополнительном потоке и есть набор устройств которые я последовательно должен опрашивать(через сом порт) так вот после того как я послал запрос к устройству я должен дождаться когда оно мне ответит как только ответил обработать ответ и дальше продолжить опрос следующего устройства
т.е. все выглядит приблизительно так:

 while not Terminated do
 begin
   for i:=1 to N do
   begin
     .......
     послали запрос к  устройству номер i
     как то тут остановить выполнение цикла
     до наступления события- ответ из устройства ?????

     продолжить выполнение с обработкой ответа от устройства номер i
     .......

   end;                                    

 end;


 
Ганя   (2010-01-05 11:20) [1]

см. CreateEvent, SetEvent, ResetEvent в MSDN


 
Юрий Зотов ©   (2010-01-05 13:12) [2]

> Андрей Пл   (05.01.10 10:38)

См. в MSDN: CreateFile, WaitComEvent, ReadFile, CloseFile.

А также раздел Communications Functions и пример Monitoring Communications Events.


 
Anatoly Podgoretsky ©   (2010-01-05 15:19) [3]

> Андрей Пл  (05.01.2010 10:38:00)  [0]

Какой смешной вопрос, конечно же Terminated := True


 
Андрей Пл   (2010-01-05 17:45) [4]


> Anatoly Podgoretsky ©   (05.01.10 15:19) [3]
>   Какой смешной вопрос, конечно же Terminated := True


неее)) это мне весь поток закроет.. это я еще шарю...)


 
Anatoly Podgoretsky ©   (2010-01-05 17:57) [5]

Ну тогда Break, выйдешь из цикла for,  а не цикла while. Вопрос надо ставить более строго, что бы потом не дезавуировать первое заявление, не заставлять гадать из какого цикла ты именно хочешь выйти.



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
1-1239268291
sniknik
2009-04-09 13:11
2010.03.07
Ошибка преобразования RTF в PlainText через TRichEdit


15-1261061893
Kerk
2009-12-17 17:58
2010.03.07
Wasserman Daily


11-1213530831
Artlav
2008-06-15 15:53
2010.03.07
RichEdit: Синхронизация и ограничения.


15-1261175201
Германн
2009-12-19 01:26
2010.03.07
Ну и как понять таких разработчиков?


2-1262794714
antonn
2010-01-06 19:18
2010.03.07
запуск консольной утилиты с передачей ей параметра в OEM