Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
ВнизОрганизация задержки Найти похожие ветки
← →
Zilog (2003-04-24 17:48) [0]Чем можно заменить такую строчку, работающую в дополнительном потоке? Дело в том, что она тормозит программу.
WaitReply:
if Reply = "" then goto WaitReply;
← →
Zelius (2003-04-24 17:51) [1]поток должен работать только тогда, когда ему есть что делать! А в остальное время он должен спать, то есть надо вызывать ф-ии типа Sleep, WaitForSingleObject, GetMessage... В твоем случае он этого не делает, работает постоянно, вот тебе и загрузка процессора...
← →
Digitman (2003-04-24 17:54) [2]Вот WaitReply и "тормозит" как раз)
← →
Zilog (2003-04-24 18:00) [3]Я прекрасно понимаю что тормозит WaitReply.
Дело в том, что мне надо дождаться появления ответа Reply, чтобы продолжить работу программы... Ожидать надо в потоке, т.к. он же ещё кучу дел у меня делает. Вот не знаю как лучше организовать эту задержку.
Ответ приходит в ком порт, поэтому я точно не знаю когда придёт - из за этого такой цикл...
Может что подскажете?....
← →
TCrash (2003-04-24 18:04) [4]Опрашивай Reply по таймеру, если конечно ответы приходят не слишком часто
← →
Zilog (2003-04-24 18:15) [5]Как это по таймеру сделать?
Вот кусок кода - посылаю в com порт команду, надо ждать ответа,
чтобы предпринять дальнейшие действия:
---------------
...
if not Transmit("ATD"+Phone) then exit;
Reply := "";
WaitReply:
if Reply = "" then goto WaitReply;
if Reply = "NO CARRIER" then begin
Status(stTm,"Нет соединиения");
Result := false;
exit;
end;
...
---------------
← →
han_malign (2003-04-24 18:15) [6]Самое простое
while(Reply="")do sleep(5);
> Ответ приходит в ком порт
- куда "в ком порт", и кто присваивает значение в Reply? Если это какой то компонент, то там наверняка должна быть синхронизация - либо callback, либо event, либо классический WaitReply...
← →
Zilog (2003-04-24 18:19) [7]Вот это вроде как помогло :)))) Пасиба!!
while(Reply="")do sleep(5);
>> куда "в ком порт", и кто присваивает значение в Reply?
Значение присваиваю я, при возниконовении события.
← →
Zelius (2003-04-24 19:50) [8]А вообще специально для таких случаев есть асинхронные операции ввода/вывода.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c