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

Вниз

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

 
Fktrc   (2004-08-22 09:26) [0]

Насколько я знаю, в поточной функции не рекомендуется использовать Sleep (например вот так)
procedure TMyThread.Execute;
begin
 repeat
    Sleep (...);
    ...
 until Terminated;
end;

Как тогда правильно организовать паузу в потоке?


 
TUser ©   (2004-08-22 11:37) [1]

Кем не рекомендуется? И почему? Нормальный вызов, более того, в правильно написанном потоке д.б. sleep"ы. Тут кто-то недавно спрашивал, почему поток грузит процессор на 100% :)


 
Mim1 ©   (2004-08-22 12:00) [2]

Если вам нужна периодичность то нормально. ОДнако если вы проверяете в каждой из итераций какое то событие (например изменение какого то параметра), следует воспольщоваться средствапи синхронизации (критические секции, симафоры, мютексы, и т.д.).


 
Fktrc   (2004-08-22 12:10) [3]

А вот кем
http://delphimaster.net/view/1-1092888489/
там ответы Erik1 и Digitman, только я смысла кода Erik1 не понял


 
False_Delirium ©   (2004-08-22 16:58) [4]

Что значит "организовать паузу в потоке"  ..?..
Заставить его не реагировать ни на что извне, команды, события, сообщения? Зачем?


 
jack128 ©   (2004-08-22 17:16) [5]


> там ответы Erik1 и Digitman, только

Смотря на какое время у тя должен засыпать поток.. Если Sleep(1) то можно потерпеть, а если Sleep(100000), то лудше что нить типа этого..
procedure TMyThread.Execute();
begin
 while not Terminated do
 begin
   // StopEvent - Event, сигнализирующий о необходимости завершить поток...
   if WaitForSingleObject(StopEvent, 100000) = WAIT_TIMEOUT then
   begin
      // Выполняешь что те нужно делать..        
   end
   else
     Exit;
 end;
end;


 
TUser ©   (2004-08-22 19:01) [6]

Ты случайно не посчитал, сколько там постов от Digitman"а?


 
y-soft ©   (2004-08-22 19:38) [7]

>Fktrc   (22.08.04 09:26)
 
Насколько я знаю, в поточной функции не рекомендуется использовать Sleep

Странные у Вас сведения. Скорее не рекомендуется применять бездумно - ну, так такую рекомендацию можно отнести к чему угодно :)

Конечно, ожно использовать функции ожидания, но это отнюдь не всегда возможно, а иногда даже и неоправданно...


 
Fktrc   (2004-08-23 06:16) [8]

2 jack128
Спасибо, вроде дошло. Почитаю еще хелп по WaitForSingleObject и Events, но проблем не предвидится.



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

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

Наверх





Память: 0.47 MB
Время: 0.03 c
8-1087813662
PenguinX
2004-06-21 14:27
2004.09.05
Опять FastDIB :))


1-1092810790
andy
2004-08-18 10:33
2004.09.05
Asm-процедуры для работы со строками PChar


3-1092130430
Dr. Andrey
2004-08-10 13:33
2004.09.05
Параметры процедуры AddNew для ADORecordset


14-1092742868
DelphiNew
2004-08-17 15:41
2004.09.05
расчёт Возмещение НДС


14-1092579197
Soft
2004-08-15 18:13
2004.09.05
Вирусы добрались до копира:)





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