Thread线程启用问题,很简单,在线等,马上结贴。速来拿分!
想法是这样的,创建线程后,根据需要执行,现场执行完后,不注销,下次还要继续启用执行。
现在的问题是第一次执行后,第二次我不知道怎么调用,我创建的时候是create(true),第一次resume正常执行线程,onterminate事件也正常执行,但是第二次我不清楚用什么方式执行了,还是线程只能一次性的,第二次又需要从新创建?
还有一个问题OnTerminate执行完毕后,线程是处于什么状态,我TForm1.Button2Click(Sender: TObject);时间中调用线程Terminated是False,按直观理解,应该是True啊。请大侠帮忙解答下。
{ TMyThread }
constructor TMyThread.Create(ASuspended: Boolean);
begin
inherited Create(ASuspended);
end;
procedure TMyThread.Execute;
begin
inherited;
ShowMessage('3');
end;
{ TForm1 }
procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(FMyThread) then FMyThread.Destroy;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(FMyThread) then
begin
FMyThread := TMyThread.Create(True);
FMyThread.OnTerminate := ThreadTerminate;
FMyThread.Resume
end
else FMyThread.Resume
end;
procedure TForm1.ThreadTerminate(Sender: TObject);
begin
ShowMessage('jieshule');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if FMyThread.Terminated then ShowMessage('Terminated')
else ShowMessage('not Terminated');
end;