Главная страница
    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
9-1071270135
Legafor
2003-12-13 02:02
2004.05.16
2D Движок


1-1083335198
Elast
2004-04-30 18:26
2004.05.16
DBGridEh


3-1082433154
SerKom
2004-04-20 07:52
2004.05.16
Тип объекта неизвестен, а имя свойство точно известно


1-1083727727
russko
2004-05-05 07:28
2004.05.16
Многоуровневый выпадающий список


1-1083231666
Goida
2004-04-29 13:41
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский