分享

核心教程第十一课-多线程在软件开发中的应用(2)

 工厂应用 2018-04-06
线程的控制
 
 procedure TNumThread.Execute;
var
  i:Integer;
begin
  FreeOnTerminate:=True;//线程结束立刻释放线程对象
  For i:=0 to 5000000 do
  begin
    if Terminated then Break;//强行终止线程的时候为真
    Inc(Answer,Round(Abs(Sin(Sqrt(i*87)))));
    Synchronize(GetAnswer);
  end;
end;

implementation
uses Unit2;
{$R *.dfm}
var
  NumThread:TNumThread;
procedure TForm1.btn1Click(Sender: TObject);

begin
  NumThread:=TNumThread.Create(False); //这个false,意思是是否延时运行?
end;
//线程挂起
procedure TForm1.btngqClick(Sender: TObject);
begin
  //判断线程是否存在
  if Assigned(NumThread) then
  NumThread.Suspend;
end;
//线程唤醒
procedure TForm1.btnhxClick(Sender: TObject);
begin
  if Assigned(NumThread) then
  NumThread.Resume;
end;
//线程终止
procedure TForm1.btnjsClick(Sender: TObject);
begin
  if Assigned(NumThread) then
  NumThread.Terminate;
end;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多