TThread是一個抽象類,可以創建幾個獨立的線程。
類關系 TObject
在一個多線程的應用程序中創建一個TThread的後子類代表一個線程。每一新子類的TThread對象的實例是一個新的線程。從TThread派生的多線程實例可以構成Delphi的多線程應用程序。
當一個應用程序運行時,應用程序就被載入內存准備執行。此時,它成為包含一個或多個線程的進程,每個線程含有數據、代碼和系統資源。線程執行應用程序的部分內容,並由系統分配CPU時間。同一進程的所有線程共享同一地址空間,可以訪問進程的全局變量。線程通過以下工作改善應用的性能:管理多通信設備的輸入。
區分任務的優先級。優先級高的處理緊急的任務。優先級低的處理其他任務。
以下是使用線程的一些建議:
同時跟蹤太多的線程消耗CPU時間。對單處理器系統,一個進程最多有16個線程。
當多個線程更新相同的資源時,應使線程同步以避免沖突。
大多數訪問VCL對象和更新窗體的方法必須從主VCL線程內部調用。
以下為創建和使用一個新線程的過程:
(1)單擊File|New|Thread菜單項,創建一個包含對象的新單元,該對象源於TThread類。
(2)定義新線程對象和Create方法。
(3)通過插入線程執行時需要的代碼定義線程對象和Execute方法。
(4)將使用VCL組件的任何調用傳遞給Synchronize方法,以避免多線程沖突。
屬性列表
FreeOnTerminate 線程終止時該對象是否自動刪除
Handle 包含線程句柄
Priority 確定該線程相對於進程中其他線程的優先級
ReturnValue 返回線程值
Suspended 指示一線程是否被掛起
Terminated 表明線程被要求終止
ThreadID 標識貫穿系統的線程
方法列表
~TThread 刪除線程對象並釋放其戰用的內存空間
DoTerminate 產生一個OnTerminate事件
Execute 提供包含線程執行時所需代碼的抽象方法
Resume 重新執行一個掛起的線程
Suspend 掛起一個運行中的線程
Synchronize 在主VCL線程中執行Method
Terminate 將Ternimated屬性設置為True通知線程終止
TThread 創建一個線程對象的實例
WaitFor 等待線程終止並返回ReturnValue屬性值
事件列表
OnTerminateExecute 方法已返回且該線程被刪除前發生