![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Принудительное завершение работы потоков [D7, Win95/98]
BVV © (2005-02-27 11:04:00)Не получается приостановить а потом продолжить работу потоков, а также завершить работу потоков раньше чем онит свое отработают.
код потоков
Potoki = class(TThread)
...
public
constructor Create(sinp, sout: string);
end;
Potok1= class(Potoki)
protected
procedure Sort(var s:string); override;
end;
...
Potok10= class(Potoki)
protected
procedure Sort(var s:string); override;
end;
implementation
uses Unit1;
{ Potoki }
constructor Potoki.Create(sinp, sout: string);
begin
...
FreeOnTerminate := True; //если поток свое отбарабанил
inherited Create(False);
end;
А вот так я их запускаю
procedure TForm1.Button1Click(Sender: TObject);
begin
with Potok1.Create(Edit12.Text, P) do
...
with Potok10.Create(Edit12.Text, 'p') do
end;
Юрий Зотов (2005-03-01 10:48:00) [1]> BVV (27.02.05 11:04)
> Не получается приостановить а потом продолжить работу
> потоков, а также завершить работу потоков раньше чем онит
> свое отработают.
Вы же создаете их с CreateSuspended=False - ну, они тут же и запускаются. Код в Execute не показан, но, видимо, он выполняется очень быстро и поток сразу же завершается. Понятно, что после его завершения вызывать Suspend/Resume уже бессмысленно.
begin...end (2005-03-01 10:41:00) [2]> BVV (27.02.05 16:06) [2]
> И так тоже не катит -potok1.Saspend;, potok1.Resume;
Почему Suspend и Resume не катит? Катит.
BVV (2005-03-01 10:39:00) [3]Что такой ламерский вопрос? Или ни кто не встречался с данной проблемой
BVV (2005-02-27 16:06:00) [4]Вот так чтоли -TerminateThread("а здесь что", 0);
И так тоже не катит -potok1.Saspend;, potok1.Resume;
atruhin (2005-02-27 11:08:00) [5]А в чем конкретно проблема?
Приостановить Suspend, возобновить Resume,
для завершения в цикле сортировки проверяй Terminated