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

Вниз

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

 
Hkr ©   (2004-04-24 10:36) [0]

Как сделать так, чтобы объект типа TThred не уничтожался, когда сделает всю работу?


 
uny   (2004-04-24 10:41) [1]

не успеваете сказать спасибо?:)


 
Locker   (2004-04-24 10:42) [2]

YourThread.FreeOnTerminate := false;


 
MBo ©   (2004-04-24 10:53) [3]

Поток заканчивает работу при завершении метода Execute. Зачем он потом нужен? Не лучше ли будет Suspend-Resume его при необходимости, или ждать в нем какого-нибудь события?


 
Locker   (2004-04-24 13:11) [4]

> Зачем он потом нужен
 Например, хранение результатов до тех пор, пока они не понадобятся.


 
Piter ©   (2004-04-24 13:57) [5]

Поток сделал работу, получил результаты, вернул их и завершился. Зачем держать поток только для того, чтобы узнать результаты? Поток - это тебе не  переменная для хранения


 
Hkr ©   (2004-04-24 15:30) [6]


> Locker   (24.04.04 10:42) [2]
> YourThread.FreeOnTerminate := false;

Нет, так не получается, мнее, впринципе, надо поток вызывать несколько раз(тоесть при нажатии на кнопку)...

> MBo ©   (24.04.04 10:53) [3]
> Не лучше ли будет Suspend-Resume его
> при необходимости, или ждать в нем какого-нибудь события?

Тоесть, тоесть сделать бесконечный цикл и при его переходе(или как?) делать Suspend?


 
evvcom ©   (2004-04-24 15:52) [7]

За последние 2-3 дня несколько веток было по потокам. Все эти вопросы обсуждались.
> Тоесть, тоесть сделать бесконечный цикл и при его переходе(или
> как?) делать Suspend?

Типа того. Просмотрите за последние 2-3 дня ветки.


 
Piter ©   (2004-04-24 19:36) [8]

Hkr (24.04.04 15:30) [6]
надо поток вызывать несколько раз


А в чем проблема? Создал поток - он отработал и завершился.
Нужно еще раз - создал еще раз поток, он опять отработал и завершился. Имхо, правильная логика такая


 
Hkr ©   (2004-04-25 09:37) [9]


> evvcom ©   (24.04.04 15:52) [7]

Точно, работает, Спасибо.

> Piter ©   (24.04.04 19:36) [8]
> А в чем проблема? Создал поток - он отработал и завершился.
> Нужно еще раз - создал еще раз поток, он опять отработал
> и завершился. Имхо, правильная логика такая

а как его сделать еще раз?


 
Piter ©   (2004-04-25 12:28) [10]

Hkr (25.04.04 09:37) [9]
а как его сделать еще раз?


хех. А как ты его делал в первый раз? :)


 
Hkr ©   (2004-04-29 10:29) [11]

Тоесть Free его а потом заного Create?


 
panov ©   (2004-04-29 10:51) [12]

Вот шаблон.
Единственное, надо добавить критические секции.

TMyThread=class
private
 FData: String
 procedure Display;
protected
 procedure Execute; override;
public
 constructor Create;
 procedure Go(aStr: String);
end;

constructor TMyThread.Create;
begin
 inherited CReate(True);
 FreeOnTerminate := true;
end;

procedure TMyThread.Execute;
begin
 while not Terminated do
 begin
   //здесь работаем с данными, в данном случае - с FData
   Synchronize(Display);
   Suspend;
 end;
end;

procedure TMyThread.Go(aStr: String);
begin
 if not Suspended then Exit;
 FData := aStr;
 Resume;
end;


 
Hkr ©   (2004-05-02 20:58) [13]


> panov ©  

Спасибо. :)



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

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
1-1083334497
Smirnoff
2004-04-30 18:14
2004.05.16
как в конце строки удалить символ перевода стоки?


8-1077125673
__Alex__
2004-02-18 20:34
2004.05.16
компонент для просмтора avi роликов


3-1082109937
ksa3003
2004-04-16 14:05
2004.05.16
Выборка пустых значений


4-1080353007
MPS
2004-03-27 05:03
2004.05.16
Принудительное закрытие контекстного меню


1-1083245971
Шнур
2004-04-29 17:39
2004.05.16
Округление





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