看別人的部落格一萬次記憶效果也沒那麼好,還是自己動手寫寫吧!
functioncreatethread(
lpthreadattributes: pointer;
dwstacksize: dword;
lpstartaddress: tfnthreadstartroutine;
lpparameter: pointer;
dwcreationflags: dword;
varlpthreadid: dword
): thandle;stdcall;
//api例項
functionmyfun(p: pointer): integer;stdcall;//加stdcall(入口函式)
var
i: integer;
begin
fori := 0
to500000
do
begin
form1.canvas.lock;
form1.canvas.textout(10, 10, inttostr(i));
form1.canvas.unlock;
end;
result := 100;//入口函式返回值
end;//返回值作用:等執行緒退出後, 我們用 getexitcodethread 函式獲取的退出碼就是這個返回值!
//如果執行緒沒有退出, getexitcodethread 獲取的退出碼將是乙個常量 still_active (259); 這樣我們就可以通過退出碼來判斷執行緒是否已退出.
procedure form1.button1click();
varid:dword;//由於createthread中定義id為dword型別。
begin
控制代碼:=createthread(nil,0,@myfun,nil,0,id);
end;
//tthread例項
type
tmythread =class(tthread)
protected
procedure exceute; override;
end;
procedure tmythread.exceute;//類有的抽象方法(execute),
begin
freeonterminate:=true;
end;
procedure form1.buttom1click;
varmythread:tmythread;
begin
mythread:tmythread.create(false);//false:立刻執行;true:resume才執行。suspend
end;
delphi 多執行緒
摘自 萬一的部落格 functionmyfun p pointer integer stdcall var i integer begin fori 0to500000do begin form1.canvas.lock form1.canvas.textout 10,10,inttostr i f...
delphi 多執行緒例項
下面筆者將介紹乙個簡單的例項,解釋和說明前面所述的內容。1 建立form,在其中建立兩個按鈕 開始採集 和 停止採集 新增乙個paintbox1。2 建立乙個新的單元,在其中輸入以下 unit collectthread inte ce uses classes,sysutils,stdctrls,...
delphi多執行緒釋放
delphi建立了多執行緒後,要想在執行完成後自動釋放所用的資源,可以在建構函式constructor裡指定 執行緒結束時的執行事件,onterminate finishedevent 這樣,當乙個執行緒執行完成後,就會自動呼叫 這個過程,當然,在建構函式裡還必須先有這兩句 inherited cr...