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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.051 c
11-1069098939
dva
2003-11-17 22:55
2004.05.16
DiffLines.exe - огорчает игнорирование командной строки...


1-1083266245
Serious Sam
2004-04-29 23:17
2004.05.16
Как втиснуть курсор в прогу?


3-1082627560
vantage10
2004-04-22 13:52
2004.05.16
учет рабочего времени


1-1083433797
Leos
2004-05-01 21:49
2004.05.16
Прокрутка


4-1079877330
DoG
2004-03-21 16:55
2004.05.16
HooK на WindowCreate !





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