Delphi 建立執行緒(API)

2021-04-30 09:34:02 字數 1429 閱讀 1001

(*----下面這個程式介紹了我們在使用執行緒及未使用執行緒二種情況下,執行該程式的反

應。當點usedthread按鈕時,則建立乙個執行緒,這時我們可以在程式進行計算的同

時,改變窗體的尺寸及移動它。當按下nousedthread按鈕時,不建立執行緒,我們會發

現在程式沒有計算完之前根本不能做其它任何事情!

unit unit1;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, stdctrls, buttons;

type

tform1 = class(tform)

usedthread: tbitbtn;

nousedthread: tbitbtn;

procedure usedthreadclick(sender: tobject);

procedure nousedthreadclick(sender: tobject);

private

public

end;

varform1: tform1;

implementation

function mythreadfunc(p:pointer):longint;stdcall;

vari:longint;

dc:hdc;

s:string;

begin

dc:=getdc(form1.handle);

for i:=0 to 500000 do begin

s:=inttostr(i);

textout(dc,10,10,pchar(s),length(s));

end;

releasedc(form1.handle,dc);

end;

procedure tform1.usedthreadclick(sender: tobject);

varhthread:thandle;//定義乙個控制代碼

threadid:dword;

begin

//建立執行緒,同時執行緒函式被呼叫

hthread:=createthread(nil,0,@mythreadfunc,nil,0,threadid);

if hthread=0 then

messagebox(handle,'didn』tcreateathread',nil,mb_ok);

end;

procedure tform1.nousedthreadclick(sender: tobject);

begin

mythreadfunc(nil);

//沒有建立執行緒時,直接呼叫執行緒函式

end;

end.

執行緒!執行緒!!執行緒!!! Delphi版

以下內容僅供初學者參考 看到有的同學對delphi的執行緒認識不夠深,特開一貼給同學們講講。主要給出兩種常用的執行緒形式。1 長等待型執行緒示例,等待命令,執行不定長的工作,但每個工作的時間不會太長。2 長工作型執行緒示例,執行乙個很長時間的工作,但可以很快響應取消操作。以下程式所用的知識為 訊息機...

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執行緒例子

優秀的資料庫應用應當充分考慮資料庫訪問的速度問題。通常可以通過優化資料庫 優化 查詢語句 分頁查詢等途徑收到明顯的效果。即使是這樣,也不可避免地會在查詢時閃現乙個帶有 sql符號的沙漏,即滑鼠變成了查詢等待。最可憐的是使用者,他 她 在此時只能無奈地等待。遇到急性子的,乾脆在此時嘗試 windows...