Здравствуйте.
Начал работать с потоками, разбираться что да как, появилась первая проблема. Поток запускается и работает нормально, но когда я пытаюсь остановить его Thread.Terminate; - ничего не выходит, процессор по прежнему грузится. В потоке у меня бесконечный цикл. Как его остановить?
Код:
type
TMyThread1 = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;
Var
T1 : TMyThread1;
implementation
procedure TMyThread1.Execute;
begin
while not Terminated do
Synchronize(DoWork);
end;
procedure TMyThread1.DoWork;
begin
while true do
begin
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{Если кнопка называется Stop...}
if Button1.Caption = 'Stop' then begin
T1.Terminate;
{Изменяем название кнопки}
Button1.Caption := 'Start';
{Выходим из процедуры}
Exit;
end;
T1 := TMyThread1.Create(False);
T1.Priority := tpLowest;
Button1.Caption := 'Stop';
end;