delphi中Thread執行緒的使用方法

2021-04-15 07:24:02 字數 2117 閱讀 1413

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方法...