[問題] BCB 同單執行緒程式,在2台電腦的計時時間不同
開發平台(Platform): (Ex: Win10, Linux, ...)
C++ Builder 2010
問題(Question):
小弟用 BCB 開發程式來抓取 有RS485介面的設備資料
但後來發現同一個程式的單執行緒時間,在我的NB (開發程式的電腦)
跟資料擷取用的電腦,兩者記算出來的時間不同
程式碼(Code):(請善用置底文網頁, 記得排版)
__fastcall SysRun::SysRun(bool CreateSuspended)
: TThread(CreateSuspended)
{
FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall SysRun::Execute()
{
//---- Place thread code here ----
Time_Interval = 50;
RS485State = RS485Polling;
while(!Terminated){
//R485 狀態機
if (RS485State == RS485Polling) Form3_Polling();
//線程每一次 Cycle 停置 0.01s
Sleep(10);
TimerCount++;
}
}
//---------------------------------------------------------------------------
void SysRun::Form3_Polling(void)
{
if (TimerCount % Time_Interval == 0) {
Form2->P1->Caption = "Time " + IntToStr((int)GetTickCount()
- Form2->changetime) + " ms";
Form2->changetime = GetTickCount();
}
if (TimerCount >= 50) {TimerCount = 0;}
}
補充說明(Supplement):
用我的 NB 跑計算出來的時間都可以 Time 500 ms
但如果用設備的電腦跑出來的時間都會變成 Time 780 ms
開發程式用NB的硬體系統資訊
http://imgur.com/a/QEpnj
設備電腦的硬體系統資訊
http://imgur.com/a/IWj1r
有點傻眼怎麼會這樣 = =|||
要怎麼樣做才可以設備電腦的計算出來的執行緒時間變正常呢?
感謝回答...~L
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.51.145.16
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1503399498.A.C07.html
推
08/22 19:01, , 1F
08/22 19:01, 1F
→
08/22 19:02, , 2F
08/22 19:02, 2F
→
08/22 19:03, , 3F
08/22 19:03, 3F
→
08/22 19:23, , 4F
08/22 19:23, 4F
→
08/22 19:24, , 5F
08/22 19:24, 5F
→
08/22 19:24, , 6F
08/22 19:24, 6F
→
08/22 20:22, , 7F
08/22 20:22, 7F
→
08/22 22:00, , 8F
08/22 22:00, 8F
→
08/22 22:01, , 9F
08/22 22:01, 9F
→
08/22 23:22, , 10F
08/22 23:22, 10F
→
08/22 23:22, , 11F
08/22 23:22, 11F
→
08/29 15:28, , 12F
08/29 15:28, 12F