Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое создание потоков TThread [D7]


Страницы:   1 2

ppcumax ©   (2007-06-27 20:22:00) 

Добрый день, мастера!

Подскажите, пожалуйста. Нужно создать 100 потоков класса TThread, причем на DoWork каждый поток должен выполнять одно и тоже действие. Конечно можно сделать руками, но сами понимаете..., наверное есть какой-то другой способ. Спасибо


Сергей М.   (2007-06-28 11:11:00) [1]


> что такое "нуб"?


http://forum.l2server.ru/index.php?s=afce4c215fafe7503f723138fc52149c&showtopic=18492&pid=190840&st=0&#entry190840


Однокамушкин   (2007-06-28 11:01:00) [2]


> SpellCaster   (28.06.07 10:31) [23]
> Не мешай, здесь вершится коллективное избиение нуба...

А что такое "нуб"? Много раз уже встречал, общий смысл слова понятен, но что конкртено...


homm   (2007-06-28 10:54:00) [3]

> нет, ты наверно не правильно понял, мне это нужно в цикл

Это ты не правильно понял. Зачем тебе 100 классов потока? Тебе нужно 100 его экземпляров.


SpellCaster   (2007-06-28 10:31:00) [4]

> [16] Однокамушкин   (27.06.07 21:24)
Не мешай, здесь вершится коллективное избиение нуба...


Johnmen   (2007-06-27 21:33:00) [5]

...да и экземпляров классане N,...


Однокамушкин   (2007-06-27 21:33:00) [6]


> ppcumax ©   (27.06.07 21:26) [17]
> Буду благодарен если подскажите статью, мануал


Да в [6] уже всё написано...


> Mike Kouzmine ©   (27.06.07 21:30) [18]
> Это ты рано. Начни с 3го.

Да ладно, хватит над человеком издеваться :)))))) Он ещё не знает, в чём разница между 3-им и 7-ым и может воспринять всё всерьёз...


Johnmen   (2007-06-27 21:32:00) [7]


> Буду благодарен если подскажите статью, мануал

Вот, не совсем мануал, да и классов не N, а только 100 - [6].


ppcumax   (2007-06-27 21:32:00) [8]


> Это ты рано. Начни с 3го. И обрати внимание на основы языка.


Неужели так трудно дать пример ?


Mike Kouzmine   (2007-06-27 21:30:00) [9]

ppcumax ©   (27.06.07 21:22) [14]

> А у тебя какой делбфи?

Delphi 7

Это ты рано. Начни с 3го. И обрати внимание на основы языка.


ppcumax   (2007-06-27 21:26:00) [10]


> найти доку, в которой написано как создать N экземпляров
> одного класса


Буду благодарен если подскажите статью, мануал


Однокамушкин   (2007-06-27 21:24:00) [11]

Зачем вам помещать в цикл объявление класса? Объявление класса - это что-то типа чертежа, по которому потом изготавливаются объекты... Ну и зачем вам сто одинаковых чертежей, если и по оному чертежу вы можете изготовить столько объектов, сколько нужно? Как это делается, написано в [6]...


DrPass   (2007-06-27 21:24:00) [12]


> Об этом нигде не пишется

Везде пишется. TThread - это обычный класс. Все, что применимо для обычных классов, применимо и для TThread. И только не говори, что ты не можешь найти доку, в которой написано как создать N экземпляров одного класса


ppcumax   (2007-06-27 21:22:00) [13]


> А у тебя какой делбфи?


Delphi 7


> почитать основы языка, и подумать головой


Об этом нигде не пишется. Рассказывают только как делать потоки "руками"


DrPass   (2007-06-27 21:20:00) [14]


> я понимаю, что должно быть что-то вроде
>
> for i:=1 to 100 do
> begin
> TMyThread[i] = class(TThread)
> private
>  { Private declarations }
> protected
>  procedure DoWork;
>  procedure Execute; override;
> end;
> end;

Видишь ли, есть два тупейших способа писать программы.
а) пытаться подставлять умные слова наугад
б) просить "приведите пожалуйста код"

...и всего один умный - почитать основы языка, и подумать головой


Mike Kouzmine   (2007-06-27 21:19:00) [15]

ppcumax ©   (27.06.07 21:13) [9] А у тебя какой делбфи?


DrPass   (2007-06-27 21:18:00) [16]


>   while not Terminated do
>     Synchronize(DoWork);

Впечатлило. Ты уверен, что тебе действительно потоки нужны?


> statements not allowed in interface part

А не надо воспринимать все буквально. Тут творческий подход нужен


ppcumax   (2007-06-27 21:18:00) [17]

я понимаю, что должно быть что-то вроде

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:13:00) [18]

statements not allowed in interface part


Mike Kouzmine   (2007-06-27 21:11:00) [19]

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:05:00) [20]


> for i:=1 to 100 do  TMyThread.Create(...)


нет, ты наверно не правильно понял, мне это нужно в цикл

TMyThread1 = class(TThread)
 private
   { Private declarations }
 protected
   procedure DoWork;
   procedure Execute; override;
 end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо