TThread - C++ Builder

C++ Builder 參考手冊 ? System::Classes ? TThread


System::Classes::TThread 是線程類,用于創(chuàng)建線程

  • 簡介
  • 成員 (類型殉农、屬性刀脏、方法超凳、事件)
  • 例子

一. System::Classes::TThread 簡介

  • 繼承關(guān)系:
    System::TObject
    ?╙ System::Classes::TThread
  • 頭文件:#include <System.Classes.hpp>
  • 命名空間:System::Classes
  • System::Classes::TThread 線程類是純虛類,子類必須實現(xiàn) Execute 方法。

二. System::Classes::TThread 成員

1. System::Classes::TThread 類型成員

類型 說明
public: ?
TSystemTimes 用于獲取 CPU 使用率的結(jié)構(gòu)體類型

2. System::Classes::TThread 屬性

屬性 類型 說明
public: ? ?
Current TThread * 獲取當前代碼所在的線程
CurrentThread TThread * 獲取當前代碼所在的線程
ExternalThread bool 是否外部創(chuàng)建的線程
FatalException System::TObject * 如果線程由于拋出異常沒有捕獲而結(jié)束金麸,
這個屬性指向這個異常簿盅,
可以在這個線程的 OnTerminate 事件里面
通過 FatalException 判斷線程
是否由于異常而結(jié)束的
Finished bool 線程已經(jīng)結(jié)束
FreeOnTerminate bool 線程結(jié)束時是否自動銷毀
Handle NativeUInt 線程句柄揍魂。
如果是 Windows 平臺现斋,是 Windows API 的線程句柄
IsSingleProcessor bool 系統(tǒng)是否單個單核處理器
Priority TThreadPriority 線程優(yōu)先級
ProcessorCount int 系統(tǒng)處理器核心總數(shù)
Started bool 線程是否開始執(zhí)行
Suspended bool 線程是否被掛起
ThreadID unsigned 線程的ID偎蘸。
如果是 Windows 平臺,是 Windows API 的線程ID
protected: ? ?
ReturnValue int 線程結(jié)束時給其他等待線程的返回值限书,
是 WaitFor 方法的返回值
Terminated bool 是否希望線程結(jié)束倦西,
在線程里面發(fā)現(xiàn)這個屬性為 true
需要盡快的結(jié)束執(zhí)行

3. System::Classes::TThread 方法

方法 說明
public:
AfterConstruction 重載了 System::TObjectAfterConstruction 方法赁严,
在構(gòu)造函數(shù)結(jié)束時執(zhí)行 Execute 方法開始執(zhí)行線程
CheckTerminated 返回當前線程的 Terminated 屬性,
在線程類里面需要直接訪問 Terminated 屬性疼约,
只有在線程類外部才需要用這個方法。
CreateAnonymousThread 創(chuàng)建一個匿名線程:lambda 表達式或 TProc
ForceQueue 把一個函數(shù)加入異步執(zhí)行隊列裆装,
可以在主線程里面調(diào)用這個方法
GetCPUUsage 獲取 CPU 使用率
GetSystemTimes 初始化獲取 CPU 使用率的結(jié)構(gòu)體
GetTickCount 獲取從系統(tǒng)啟動開始到現(xiàn)在的毫秒數(shù)
NameThreadForDebugging 給線程起個名字倡缠,只用來調(diào)試程序,
如果不是調(diào)試方式運行的程序琢唾,這個函數(shù)什么也不執(zhí)行
Queue 把一個函數(shù)加入異步執(zhí)行隊列盾饮,
這個函數(shù)將在主線程里面執(zhí)行
RemoveQueuedEvents 從異步執(zhí)行隊列里面去除要執(zhí)行的函數(shù)
Resume 繼續(xù)執(zhí)行已經(jīng)掛起的線程
SetReturnValue 在線程類的外部設(shè)置線程 ReturnValue 屬性的值
Sleep 掛起線程一段時間 (毫秒)
SpinWait 線程空轉(zhuǎn)暫短的一段時間 (空轉(zhuǎn)次數(shù))
Start 開始執(zhí)行創(chuàng)建時就掛起的線程
StaticQueue 過時了的方法丘损,需要使用 Queue 代替
StaticSynchronize 過時了的方法, 需要使用 Synchronize 代替
Suspend 掛起線程
Synchronize 在主線程里面同步執(zhí)行一個函數(shù)
Terminate 把 Terminated 屬性置位 true衔蹲,
線程執(zhí)行過程中發(fā)現(xiàn) Terminated 屬性為 true
需要盡快結(jié)束執(zhí)行
TThread 構(gòu)造函數(shù)
~TThread 析構(gòu)函數(shù)
WaitFor 等待線程結(jié)束舆驶,并且返回 ReturnValue 屬性的值
Yield 讓 CPU 去執(zhí)行其他線程
protected:
CheckThreadError 線程內(nèi)部調(diào)用的函數(shù),檢查執(zhí)行是否有錯誤拘荡,
如果執(zhí)行有錯誤撬陵,會拋出 EThread 異常
DoTerminate 線程內(nèi)部調(diào)用的函數(shù),觸發(fā) OnTerminate 事件
Execute 純虛函數(shù)亮隙,子類需要重載實現(xiàn)這個函數(shù)垢夹,
這是線程執(zhí)行的函數(shù)
SetFreeOnTerminate 修改 FreeOnTerminate 屬性會調(diào)用這個函數(shù)
TerminatedSet 當 Terminated 屬性置為 true 時執(zhí)行果元,
由 Terminate 函數(shù)內(nèi)部調(diào)用,
這是虛函數(shù)蝇狼,子類可以重載
TObject:: System::TObject 繼承過來的
public: System::TObject 繼承過來的
BeforeDestruction 在執(zhí)行析構(gòu)函數(shù)之前會自動調(diào)用 BeforeDestruction
ClassInfo 返回運行時類型信息表 (RTTI table)
ClassName 獲取類名倡怎,不包含命名空間的類名字符串
ClassNameIs 判斷類名是否為參數(shù)指定的字符串
ClassParent 返回父類的類型信息
ClassType 返回類的類型信息
CleanupInstance 清除長字符串、Variants畔派、接口變量等
DefaultHandler 默認的消息處理
Dispatch 處理消息的函數(shù)
DisposeOf 強制銷毀對象
Equals 比較當前對象和 Obj 對象是否相同
FieldAddress 通過成員名稱返回成員的地址
Free 銷毀對象 (Delphi)
FreeInstance 釋放 NewInstance 分配的內(nèi)存
GetHashCode 返回對象的 hash 值
GetInterface 獲取指定的接口
GetInterfaceEntry 獲取接口項目
GetInterfaceTable 獲取接口表
InheritsFrom 當前對象的類是否從 AClass 繼承過來的
InitInstance 初始化成員,給他們清零
InstanceSize 返回給實例數(shù)據(jù)分配內(nèi)存需要多少字節(jié)數(shù)
MethodAddress 通過名稱返方法的地址
MethodName 通過方法的地址返回名稱
NewInstance 給實例分配內(nèi)存,并且返回新的實例的地址
QualifiedClassName 返回包含命名空間的類名
SafeCallException 處理異常的函數(shù)
ToString 轉(zhuǎn)為字符串
UnitName 返回類所在的命名空間
UnitScope 返回類所在的命名空間

4. System::Classes::TThread 事件

事件 說明
OnTerminate 當線程結(jié)束執(zhí)行時產(chǎn)生的事件,
可以在這個事件里面檢查 FatalException 屬性的值
來判斷線程是否異常結(jié)束

三. System::Classes::TThread 例子

很多屬性暑塑、方法和事件都帶例子锅必,可以參考以下方法或事件的例子:

也可以參考其他屬性、方法或事件的例子分蓖。


相關(guān):


C++ Builder 參考手冊 ? System::Classes ? TThread

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末么鹤,一起剝皮案震驚了整個濱河市味廊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柠新,老刑警劉巖辉巡,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件郊楣,死亡現(xiàn)場離奇詭異,居然都是意外死亡钥组,警方通過查閱死者的電腦和手機今瀑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屿附,“玉大人砾医,你說我怎么就攤上這事⊙购悖” “怎么了错邦?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵撬呢,是天一觀的道長。 經(jīng)常有香客問我,道長搁嗓,這世上最難降的妖魔是什么箱靴? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任衡怀,我火速辦了婚禮,結(jié)果婚禮上抛杨,老公的妹妹穿的比我還像新娘。我一直安慰自己茁帽,他們只是感情好真竖,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布恢共。 她就那樣靜靜地躺著,像睡著了一般讨韭。 火紅的嫁衣襯著肌膚如雪透硝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天埋泵,我揣著相機與錄音罪治,去河邊找鬼。 笑死雁社,一個胖子當著我的面吹牛晒骇,可吹牛的內(nèi)容都是我干的磺浙。 我是一名探鬼主播徒坡,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼崭参,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了何暮?” 一聲冷哼從身側(cè)響起铐殃,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤富腊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后是整,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體民假,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了野舶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡睹欲,死狀恐怖一屋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情考余,我是刑警寧澤轧苫,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站身冬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滚躯。R本人自食惡果不足惜嘿歌,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一宙帝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧步脓,春花似錦、人聲如沸仍侥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饭宾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間徽鼎,已是汗流浹背弹惦。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留石抡,地道東北人助泽。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像隐解,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子帕涌,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容