您的位置:首页 > 其它

初学多线程,求高手指点

2011-07-21 15:36 218 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: