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

Вниз

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

 
jorh   (2002-01-15 14:32) [0]

пиплы просвятите : есть такая штука в File\New.. ThreadObject.
Могу ли я использовать ее для создания нескольких потоков или для каждого потока мне необходимо снова создавать ThreadObject


 
panov ©   (2002-01-15 14:40) [1]

В модуле описываешь несколько своих классов потомков TThread. Все можно делать в одном модуле.


 
Владислав ©   (2002-01-15 14:41) [2]

Можно создать несколько экземпляров.


 
eraser   (2002-01-15 14:52) [3]

а если наоборот- могу ли я сделать так чтобы один и тот же код выполнялся в разных потоках без переписывания кода . у меня меняются только входные и выходные данные а способ обработки идет непрерывно и он одинаковый.


 
Владислав ©   (2002-01-15 14:55) [4]

> eraser (15.01.02 14:52)

Передавай эти данные потоку в конструкторе.


 
eraser   (2002-01-15 15:04) [5]

исправьте меня если не прав:
1.создать ThreadObject
2. в Execute написать мой код
3. когда делаю Create потока то пишу нужные данные

соответственно вопрос поток то нужен не один как мне создать другой с этим же кодом и как получить результат из каждого потока


 
Digitman ©   (2002-01-15 15:19) [6]

соответственно - ответ : поскольку потоки одного класса, каждый из них может хранить рез-ты своей работы в своем экз-ре класса


 
Юрий Зотов ©   (2002-01-15 15:22) [7]

И посмотрите класс TThreadList - может пригодиться.


 
eraser   (2002-01-15 15:32) [8]

эти результаты необходимо мне взять через какое либо объявленное свойство потока ??


 
Digitman ©   (2002-01-15 15:34) [9]

разумеется !


 
eraser   (2002-01-15 15:56) [10]

торможу!! взял для примера Thread из Demos. мучаюсь но все равно не могу никак понять. Описываются разные потоки одного класса и код то разный в каждом потоке (вызывается процедура для каждого потока procedure Tthread1.Sort
procedure Tthread2.Sort)
а мне влом писать код 3 раза (его у меня ого-го)
как не пойму чтобы потоков было несколько а код один?


 
NailS ©   (2002-01-15 16:01) [11]

Так же как и для кнопок, TButton класс один
Button1 ... и т.д. может быть много.

Создаются разные объекты одного класса.



 
eraser   (2002-01-15 16:06) [12]

не понимаю или туплю


 
Digitman ©   (2002-01-15 16:13) [13]

>eraser
Вот ты , к примеру, <eraser>. И класс у тебя - TEraser. И дети твои тоже унаследуют твой класс - TEraser. И гены их будут тоже твои (читай - код, твой генетический, непереопределенный ими Execute). И генетическое поведение их тоже будет как у тебя, потому что они - ЭКЗЕМПЛЯРЫ КЛАССА, по образу и подобию которого ты их состругал.


 
eraser ©   (2002-01-15 16:21) [14]

с классами то понятно. Вы мне тормозу просто скажите Execute с моим кодом мне написать 1 раз для родительского класса
TBigThread= class(TThread)
protected
procedure Execute; override;
или в каждом TSmall = class(TBigThread)писать Execute????
Простите за ламерство просто с потоками никогда не работал


 
panov ©   (2002-01-15 16:24) [15]

Пример:
-------------
TMyThread := class(TThread)
private
FFirstPar: String;
FNextPar: String;
public
constructor Create(const FirstParameter, NextParameter: String);
end;

А при реализации конструктора можно использовать эти параметры:

constructor TMyThread.Create(const FirstParameter, NextParameter: String);
begininherited Create( True);
FreeOnTerminate := True;
FFirstPar := FirstParameter; //Инициализация переменных
FNextPar := NextParameter;
Resume; //Переводим поток в состояние «Активный»
//Далее в процедуре Execute используем эти полученные параметры.
end;

procedure TMyThread.Execute;
begin
...
if FFirstPar=... then ...
if FNextPar=... then ...

...
end;

Создание потоков:
TMyThread.Create("First","Вася");
TMyThread.Create("First","Петя");


 
Digitman ©   (2002-01-15 17:05) [16]

>eraser
Общая концепция такова :
если объекты класса TSmall хотят изменить поведение, по-умолчанию определенное методом "родителя" (TBigThread.Execute), то необходимо переопределить метод TSmall.Execute с целью реализации иного поведения наследника. Иначе - поведение наследника будет в точности повторять поведение предка



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

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

Наверх




Память: 0.5 MB
Время: 0.017 c
3-99909
Igor_thief
2001-12-28 15:53
2002.01.31
BDE


14-100043
Adder
2001-12-06 02:14
2002.01.31
Свежий червяк I-Worm.Badtransll... Обновляйте антивирус !!!


6-100028
Landgraph
2001-11-08 10:34
2002.01.31
Перехват запросов...


1-99955
Enforcer
2002-01-13 22:54
2002.01.31
ListBox


3-99900
Slava
2001-12-27 10:17
2002.01.31
MIDAS, Сервер приложений в виде DLL