Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];

Вниз

Потоки   Найти похожие ветки 

 
delta   (2002-08-06 16:12) [0]

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


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

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


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

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


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

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


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

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


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

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


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

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


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

>>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 18:17) [8]

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


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

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



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

Форум: "Основная";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
3-60525
vasilly
2002-07-30 11:06
2002.08.19
Возможно ли?АДО для доступа к MSSQL7 и Oracle в одном приложении


1-60630
andreyz
2002-08-06 05:13
2002.08.19
Иконки в гриде


8-60760
Whitewolf
2002-03-26 13:06
2002.08.19
GLScene и Delphi 6


7-60885
Miron12
2002-06-04 18:08
2002.08.19
подключение клавиатуры


4-60913
ga3
2002-06-15 01:12
2002.08.19
переменные окружения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский