tclientdatathread =class(tthread)
private
public
listbuffer :tstringlist;
targetlist :tstrings;
proceduresynchadddatatocontrol;
procedureshowme;
constructorcreate(createsuspended: boolean);//
如果不做特殊性處理,這裡可除去;
procedureexecute;override;
procedureterminate;//
如果不做特殊性處理,這裡可除去;
end;
//------------- tclientdatathread impl -----------------------------------------
constructortclientdatathread.create(createsuspended: boolean);
begin//
如果不做特殊性處理,這裡可不寫**;
inheritedcreate(createsuspended);
freeonterminate := true;
listbuffer := tstringlist.create;
end;
proceduretclientdatathread.terminate;
begin//
如果不做特殊性處理,這裡可不寫**;
listbuffer.free;
inherited;
end;
proceduretclientdatathread.execute;
begin
synchronize(synchadddatatocontrol);
//同步操作,這樣操作時會阻止使用者輸入;
showme; //
非同步操作,這樣操作時會讓執行緒後台操作。不會阻止使用者輸入;
end;
proceduretclientdatathread.synchadddatatocontrol;
begin
targetlist.addstrings(listbuffer);
end;
proceduretclientdatathread.showme;
var
i:integer;
begin
form1.progressbar1.max:=100;
form1.progressbar1.position:=0;
fori:=0to100do
begin
form1.progressbar1.position:=i;
sleep(100);
end;
form1.progressbar1.position:=0;
end;
//------------- end tclientdatathread impl -------------------------------------
Thread執行緒中啟動執行緒
要想搞明白這個問題,首先必須理解 執行緒的本質 package com.linkage.deadlock public class demo1 implements runnable public static void main string args debug main 程式,系統啟動乙個執行...
python中thread執行緒運用
coding utf 8 import thread from time import sleep,ctime loops 4,2 def loop nloop,nsec,lock print start loop nloop,at ctime sleep nsec print loop nloop...
多執行緒 Thread
如果從另外乙個執行緒操作windows窗體上的控制項,就會與主線程產生競爭,造成不可預料的後果,甚至死鎖。因此,windows gui程式設計有乙個規則 只能通過建立控制項的執行緒來操作控制項的資料!實現方法 要從執行緒外操作windows控制項,那麼就要使用invoke或begininvoke方法...