Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Потоки [D6, Win95/98]


delta ©   (2002-08-06 16:12:00) 

Посоветуйте. Как в потоке создать задержку (необходимо дождаться момента загрузки файла другим приложением)ProcessMessages не роботает, а АPI Sleep()не подходит.


Внук   (2002-08-06 19:05:00) [1]

Только еще наверно надо добавить защиту от ухода в бесконечный цикл... А вдруг при открытии документа возникнет ошибка - тоже вариант :)


delta   (2002-08-06 18:17:00) [2]

Уточнение хорошое. В даный вариант работает. У меня просто предвзятое отношение к Sleep(), несколько раз пытался использовать правда в варианте Sleep(0)(тоисть квант процесорного времени), что вызывало ошибки.


Внук   (2002-08-06 17:59:00) [3]

>>delta © 06.08.02 17:53)
Значит, определить момент Вы все-таки не можете, а можете только узнать состояние на текущий момент времени. Тогда, вероятно, следует в цикле вызывать процедуру Sleep, увеличивая каждый раз интервал ожидания...(не помню, где я видел такой прием с удвоением интервала, как бы не в Рихтере)

var WaitTime:integer;

WaitTime:=2000;

while not Проверка_На_Окончание_Операции do
begin
Sleep(WaitTime);
WaitTime:=WaitTime*2;
end;


delta   (2002-08-06 17:53:00) [4]

Момет легко определить послав PageMake запрос. Я использую DDE для этого. Но вопрос не в том. Ведь посилать постоянно запросы не разумно, зачем перегружать систему. Для етого и нужна небольшая задержка


Внук   (2002-08-06 17:35:00) [5]

>>delta © (06.08.02 17:21)
А каким образом Вы этот момент определяете? От этого, вероятно, будет зависеть ответ на исходный вопрос.


delta   (2002-08-06 17:21:00) [6]

Дополнение к вопросу. Програма дождаться открытия файла которой необходимо Adobe PageMaker, моя програма ищет определённые данные. Определить момент завершения открытия файла я могу но все это время нужно, чтото делать (лучше отдать ресурсы системе)


Внук   (2002-08-06 16:25:00) [7]

Я, конечно, исхожу из того, что оба приложения Ваши и их исходники доступны


Внук   (2002-08-06 16:23:00) [8]

Sleep должен работать, только не для этого он.
В данном случае для синхронизации потоков уместно использовать Event, на мой взгляд. Соответственно - см. WaitForSingleObject


Polevi   (2002-08-06 16:22:00) [9]

чем не подходит sleep


Наверх

Титульная страница Поиск, карта сайта Написать письмо