(*----下面這個程式介紹了我們在使用執行緒及未使用執行緒二種情況下,執行該程式的反
應。當點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...