C++ Builder 參考手冊 ? TThread ? GetSystemTimes
頭文件:#include <System.Classes.hpp>
命名空間:System::Classes
類:TThread
訪問權(quán)限:public:
函數(shù)原型:
static bool __fastcall GetSystemTimes(TSystemTimes &SystemTimes);
System::Classes::TThread::GetSystemTimes 是 System::Classes::TThread 的靜態(tài)成員函數(shù),為獲取 CPU 使用率所需的數(shù)據(jù)賦初始值。
參數(shù):
SystemTimes:獲取 CPU 使用率所需的數(shù)據(jù)。
返回值:
true:成功;false:失敗。
- 獲取 CPU 使用率,需要先用 GetSystemTimes 獲取初始值,然后每次調(diào)用 GetCPUUsage 函數(shù),都會(huì)得到與獲取初始值的時(shí)刻或與上一次調(diào)用這個(gè)函數(shù)的時(shí)刻之間的 CPU 使用率;
- GetCPUUsage 函數(shù)內(nèi)部也是調(diào)用 GetSystemTimes 獲取 CPU 使用率所需的數(shù)據(jù),通過兩次 GetSystemTimes 獲取的數(shù)據(jù)計(jì)算出這兩個(gè)獲取數(shù)據(jù)時(shí)刻之間的 CPU 使用率。
例子:實(shí)時(shí)獲取和顯示 CPU 使用率。
- 在 Form1 上:
放一個(gè) TTimer 定時(shí)器控件 Timer1,用于每隔 1 秒刷新一次 CPU 使用率的值;
放一個(gè) TProgressBar 進(jìn)度條控件 ProgressBar1,用于顯示 CPU 使用率;
放一個(gè) TLabel 文字的控件 Label1 用于顯示 CPU 使用率的值;

在 Form1 上放控件 Timer1、ProgressBar1 和 Label1
- 在 Form1 頭文件的 TForm1 類的 private: 里面添加變量:
private:
TThread::TSystemTimes SysTms;

在頭文件的 TForm1 類的 private: 里面添加變量
- 在 TForm1 的構(gòu)造函數(shù)里面給 SysTms 賦初始值;
在 Timer1 的 OnTimer 事件里面刷新顯示 CPU 使用率:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TThread::GetSystemTimes(SysTms);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
int iCPUUsage = TThread::GetCPUUsage(SysTms);
ProgressBar1->Position = iCPUUsage;
Label1->Caption = UnicodeString().sprintf(L"%d%%", iCPUUsage);
}
運(yùn)行結(jié)果:

實(shí)時(shí)刷新顯示 CPU 使用率的運(yùn)行結(jié)果
參考:
- System::Classes::TThread::TSystemTimes
- System::Classes::TThread::GetCPUUsage
- System::Classes::TThread::IsSingleProcessor
- System::Classes::TThread::ProcessorCount
- System::Classes::TThread
- System::TObject
- VCL 類繼承關(guān)系
C++ Builder 參考手冊 ? TThread ? GetSystemTimes