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 каждый поток должен выполнять одно и тоже действие. Конечно можно сделать руками, но сами понимаете..., наверное есть какой-то другой способ. Спасибо


Virgo_Style   (2007-06-27 20:57:00) [21]

ppcumax ©   (27.06.07 20:49) [5]
а как тут цикл применить?


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

Но это ответ на [0], в [2] у тебя что-то совсем на [0] непохожее, а что именно - Тьма ведает.


ppcumax   (2007-06-27 20:49:00) [22]

>я надеюсь, не из реальной программы код? %-)))

нет

>вообще-то есть такая штука, как циклы

знаю. а как тут цикл применить? покажи пример, он же не большой должен быть


Virgo_Style   (2007-06-27 20:46:00) [23]

вообще-то есть такая штука, как циклы... а [2], я надеюсь, не из реальной программы код? %-)))


oldman   (2007-06-27 20:35:00) [24]


> что неужели только руками все писать?


А ты думал программирование = легкая жизнь?


ppcumax   (2007-06-27 20:33:00) [25]

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:27:00) [26]


> Динамическое создание потоков


Имхо, а какое исчо?
В дезайн-тайм???


> каждый поток должен выполнять одно и тоже действие.


А по-русски?


Страницы:   1 2

Наверх

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