Текущий архив: 2007.07.22;
Скачать: CL | DM;
Вниз
Динамическое создание потоков TThread Найти похожие ветки
← →
ppcumax © (2007-06-27 20:22) [0]Добрый день, мастера!
Подскажите, пожалуйста. Нужно создать 100 потоков класса TThread, причем на DoWork каждый поток должен выполнять одно и тоже действие. Конечно можно сделать руками, но сами понимаете..., наверное есть какой-то другой способ. Спасибо
← →
oldman © (2007-06-27 20:27) [1]
> Динамическое создание потоков
Имхо, а какое исчо?
В дезайн-тайм???
> каждый поток должен выполнять одно и тоже действие.
А по-русски?
← →
ppcumax © (2007-06-27 20:33) [2]type
TMyThread1 = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;
TMyThread2 = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;
var Form1: TForm1;
T1 : TMyThread1;
T2 : TMyThread2;
implementation
procedure TMyThread1.Execute;
begin
while not Terminated do
Synchronize(DoWork);
end;
procedure TMyThread2.Execute;
begin
while not Terminated do
Synchronize(DoWork);
end;
procedure TMyThread1.DoWork;
begin
Form1.CheckBox1.Checked := True;
end;
procedure TMyThread2.DoWork;
begin
Form1.CheckBox1.Checked := False;
end;
Есть какой-то другой вариант создания потоков, что неужели только руками все писать?
← →
oldman © (2007-06-27 20:35) [3]
> что неужели только руками все писать?
А ты думал программирование = легкая жизнь?
← →
Virgo_Style © (2007-06-27 20:46) [4]вообще-то есть такая штука, как циклы... а [2], я надеюсь, не из реальной программы код? %-)))
← →
ppcumax © (2007-06-27 20:49) [5]>я надеюсь, не из реальной программы код? %-)))
нет
>вообще-то есть такая штука, как циклы
знаю. а как тут цикл применить? покажи пример, он же не большой должен быть
← →
Virgo_Style © (2007-06-27 20:57) [6]ppcumax © (27.06.07 20:49) [5]
а как тут цикл применить?
for i:=1 to 100 do
TMyThread.Create(...)
Но это ответ на [0], в [2] у тебя что-то совсем на [0] непохожее, а что именно - Тьма ведает.
← →
ppcumax © (2007-06-27 21:05) [7]
> for i:=1 to 100 do TMyThread.Create(...)
нет, ты наверно не правильно понял, мне это нужно в цикл
TMyThread1 = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;
← →
Mike Kouzmine © (2007-06-27 21:11) [8]ppcumax © (27.06.07 21:05) [7]
for i:=1 to 100 do
begin
TMyThread1 = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;
end;
← →
ppcumax © (2007-06-27 21:13) [9]statements not allowed in interface part
← →
ppcumax © (2007-06-27 21:18) [10]я понимаю, что должно быть что-то вроде
for i:=1 to 100 do
begin
TMyThread[i] = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;
end;
но где и как прописать не знаю
← →
DrPass © (2007-06-27 21:18) [11]
> while not Terminated do
> Synchronize(DoWork);
Впечатлило. Ты уверен, что тебе действительно потоки нужны?
> statements not allowed in interface part
А не надо воспринимать все буквально. Тут творческий подход нужен
← →
Mike Kouzmine © (2007-06-27 21:19) [12]ppcumax © (27.06.07 21:13) [9] А у тебя какой делбфи?
← →
DrPass © (2007-06-27 21:20) [13]
> я понимаю, что должно быть что-то вроде
>
> for i:=1 to 100 do
> begin
> TMyThread[i] = class(TThread)
> private
> { Private declarations }
> protected
> procedure DoWork;
> procedure Execute; override;
> end;
> end;
Видишь ли, есть два тупейших способа писать программы.
а) пытаться подставлять умные слова наугад
б) просить "приведите пожалуйста код"
...и всего один умный - почитать основы языка, и подумать головой
← →
ppcumax © (2007-06-27 21:22) [14]
> А у тебя какой делбфи?
Delphi 7
> почитать основы языка, и подумать головой
Об этом нигде не пишется. Рассказывают только как делать потоки "руками"
← →
DrPass © (2007-06-27 21:24) [15]
> Об этом нигде не пишется
Везде пишется. TThread - это обычный класс. Все, что применимо для обычных классов, применимо и для TThread. И только не говори, что ты не можешь найти доку, в которой написано как создать N экземпляров одного класса
← →
Однокамушкин (2007-06-27 21:24) [16]Зачем вам помещать в цикл объявление класса? Объявление класса - это что-то типа чертежа, по которому потом изготавливаются объекты... Ну и зачем вам сто одинаковых чертежей, если и по оному чертежу вы можете изготовить столько объектов, сколько нужно? Как это делается, написано в [6]...
← →
ppcumax © (2007-06-27 21:26) [17]
> найти доку, в которой написано как создать N экземпляров
> одного класса
Буду благодарен если подскажите статью, мануал
← →
Mike Kouzmine © (2007-06-27 21:30) [18]ppcumax © (27.06.07 21:22) [14]
> А у тебя какой делбфи?
Delphi 7
Это ты рано. Начни с 3го. И обрати внимание на основы языка.
← →
ppcumax © (2007-06-27 21:32) [19]
> Это ты рано. Начни с 3го. И обрати внимание на основы языка.
Неужели так трудно дать пример ?
← →
Johnmen © (2007-06-27 21:32) [20]
> Буду благодарен если подскажите статью, мануал
Вот, не совсем мануал, да и классов не N, а только 100 - [6].
← →
Однокамушкин (2007-06-27 21:33) [21]
> ppcumax © (27.06.07 21:26) [17]
> Буду благодарен если подскажите статью, мануал
Да в [6] уже всё написано...
> Mike Kouzmine © (27.06.07 21:30) [18]
> Это ты рано. Начни с 3го.
Да ладно, хватит над человеком издеваться :)))))) Он ещё не знает, в чём разница между 3-им и 7-ым и может воспринять всё всерьёз...
← →
Johnmen © (2007-06-27 21:33) [22]...да и экземпляров класса не N,...
← →
SpellCaster (2007-06-28 10:31) [23]> [16] Однокамушкин (27.06.07 21:24)
Не мешай, здесь вершится коллективное избиение нуба...
← →
homm © (2007-06-28 10:54) [24]> нет, ты наверно не правильно понял, мне это нужно в цикл
Это ты не правильно понял. Зачем тебе 100 классов потока? Тебе нужно 100 его экземпляров.
← →
Однокамушкин (2007-06-28 11:01) [25]
> SpellCaster (28.06.07 10:31) [23]
> Не мешай, здесь вершится коллективное избиение нуба...
А что такое "нуб"? Много раз уже встречал, общий смысл слова понятен, но что конкртено...
← →
Сергей М. © (2007-06-28 11:11) [26]
> что такое "нуб"?
http://forum.l2server.ru/index.php?s=afce4c215fafe7503f723138fc52149c&showtopic=18492&pid=190840&st=0&#en try190840
Страницы: 1 вся ветка
Текущий архив: 2007.07.22;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.022 c