freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi 多線程編程文庫-文庫吧

2024-12-23 11:40 本頁面


【正文】 nit2。同樣方法建立第二個線程單元 Unit3。 要注意的是: Unit2和 Unit3中有一個給定的過程: procedure 。 begin end。 其中的程序是線程喚醒后自動執(zhí)行的程序,也可以在里面調(diào)用其 他自定義的過程和函數(shù)。這個過程的結(jié)束,意味著線程程序的結(jié)束。 為了構(gòu)造線程,在 interface 的 Type區(qū),定義一個構(gòu)造過程: type Object = class(TThread) //自動給出的,也可以直接改 private protected procedure Execute。 override。 public constructor create。 //自己寫的 并且在 implementation區(qū)域?qū)懮希? constructor 。 begin inherited create(true)。 end 其中 Object 為線程對象的名字。所以這么寫,是希望在主 Form中 調(diào)用這個構(gòu)造過程。 Create()的參數(shù)用 True,表明構(gòu)造出的線程為掛起狀態(tài)。 注意一下,在同一個線程對象里,如果兩次構(gòu)造,將產(chǎn)生兩個獨(dú)立 的線程,不但運(yùn)行是獨(dú)立的,而且使用線程的局部 變量也是獨(dú)立的。但 這里為了簡化問題,還是建立了兩個獨(dú)立的線程對象,而且兩個循環(huán)數(shù) 是不同的,在并行運(yùn)算時容易判斷出是兩個不同的程序在運(yùn)行。 假定我們給兩個線程對象起的名字是: mymath1 mymath2 這樣在 Unit1,應(yīng)該作如下聲明: implementation {$R *.DFM} uses unit2,unit3。 var thread1:mymath1。 thread2:mymath2。 這樣在主線程,將可以通過這兩個線程變量調(diào)用對應(yīng)的線程方法。 在主線程區(qū)構(gòu)造線程 的方法是: thread1:=。 thread2:=。 掛起: 。 。 喚醒: 。 。 析構(gòu): 。 。 這里需要說明的是,由于線程單元需要調(diào)用 Form的 Edit控件(對象), 可以采用兩種方法: 1) 在線程單元定義一個 TEdit對象,例如 edit4:Tedit。 在 Execute過程內(nèi)直接引用 但在 Unit1中一定要在 FormCreate過程里作一個賦值: procedure (Sender: TObject)。 begin :=edit1。 end。 這樣,就把第一線程的 edit4與 Form上的 edit1聯(lián)系來。 2)在第二個線程中首先聲明調(diào)用 Unti1,也就是要加上 Uses Unit1。 這樣就可以在該線程單元直接調(diào)用主 Form的控件了,比如在 Unit3中 可以寫: :=inttostr(i) 了解了這些基本規(guī)則,就可以寫出比較復(fù)雜的多線程程序了。 還有一點(diǎn)要說明的,默認(rèn)生成的線程單元,調(diào)用的單元只有一個: Uses Classes。 這樣,往往很多函數(shù)和對象在線程單元里不能使用,所以在必要時, 應(yīng)該根據(jù)需要 User相應(yīng)的單元,這個例程為了簡單,把大部分常用的單 元都拷過去了,這并不是推薦的辦法,因?yàn)檫@樣一來會使程序的垃圾過 多,所以,一般要用什么拷什么。 三、常用的 API 函數(shù) 在處理多線程問題的時候 ,也經(jīng)常用到 Windows提供的 API 函數(shù),需 要說明的是, Tthread 對象內(nèi)部封裝的方法,其實(shí)主要也是調(diào)用 API 函 數(shù),但是,考慮更全面,更安全。而直接調(diào)用 API 函數(shù),往往會因?yàn)檫\(yùn) 用不當(dāng),出現(xiàn)一
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1