Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Пауза в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
3-1092294860
REA
2004-08-12 11:14
2004.09.05
IB описания полей


14-1092760215
VID
2004-08-17 20:30
2004.09.05
FTP-клиент.


3-1091974607
VID
2004-08-08 18:16
2004.09.05
Где живёт подробное описание SQL-команд на русском ?


4-1090500778
юзверь
2004-07-22 16:52
2004.09.05
Как запустить процедуру, зная ее адрес??


1-1092856567
Gear
2004-08-18 23:16
2004.09.05
ReadSections и ListBox