Форум: "Основная";
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];
Внизпотоки текут Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c