Показать сообщение отдельно
  #1  
Старый 13.01.2013, 19:47
dpj dpj вне форума
Прохожий
 
Регистрация: 13.01.2013
Сообщения: 1
Репутация: 10
По умолчанию Завершение нескольких потоков Tthread

Не знаю как правильно завершить созданные потоки.
Вот код в котором при нажатии кнопки Button1 создается три потока.

Основной поток
Код:
uses th;
 
procedure TFormMain.Button1Click(Sender: TObject);
  var
  th: array[0..2] of ThMy;
  I: Integer;
begin
  for I := 0 to 2 do begin
    th[i]:= ThMy.Create(true);
    th[i].FreeOnTerminate:= false;
    th[i].Priority:= tpNormal;
    th[i].Start;
  end;
end;


А вот собственно сам поток TThread


Код:
type
  ThMy = class(TThread)
  private
    Msg: string;
    procedure ShowMsg;
  protected
    procedure Execute; override;
  end;
 
implementation
 
uses Unit1;
 
procedure ThMy.Execute;
  var
  i: Integer;
begin
  while not Terminated do begin
    Inc(i);
    Sleep(10);
  end;
end;
 

После запуска потока цикл while ожидает Terminated но вот как его послать и при том, что потока 3.
Вот собственно хочу завершить не все потоки сразу, а выборочно какой-либо из них.

Буду бдагодарен за любую помощь.
Ответить с цитированием