Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-22921
IgorP
2003-04-19 11:23
2003.05.08
Кто работает с MSSQL через dbexpress отзовитесь


14-23287
DimaK
2002-11-11 22:34
2003.05.08
Библиотека MMTools 2.0


1-23100
LyzD
2003-04-26 18:10
2003.05.08
Изменение параметров потока...


14-23352
ly
2003-04-20 14:15
2003.05.08
format


11-23051
Alexander
2002-08-01 12:02
2003.05.08
Пытаюсь нарисовать главную иконку приложения.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский