初学多线程,求高手指点

 

function MyFun(p:Pointer):Integer;stdcall;
  var
    i:Integer;
begin
  for i := 0 to 90000 do
  begin
    MessageBox(0,'aaa','fdsf',MB_OK); //线程函数体里只可以执行函数,不可以执行过程;
    ShowMessage('aa'); //所以执行这句会出错;
    //因为,ShowMessage是过程体,MessageBox是函数体;按Crtl键加鼠标左点单击查看原形就知道;
    Form1.Canvas.TextOut(10,10,IntToStr(i));
    Sleep(2);
  end;
end;

procedure TForm1.btn1Click(Sender: TObject);
  var
    Id:DWORD;
begin
  HTheard := CreateThread(nil,0,@MyFun,nil,CREATE_SUSPENDED,Id);
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  ResumeThread(HTheard); //执行线程;就是开始;
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
  SuspendThread(HTheard); //挂起线程;也就是暂停;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值