程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++裡面定時器的使用,

C++裡面定時器的使用,

編輯:C++入門知識

C++裡面定時器的使用,


說白了就是三個函數的使用:

SetTimer(20, 20, 0); //第一個20表示此定時器的標識符,第二個20表示你要定的時間,第三個不用管,設0即可。

void CLMS511_interfaceDlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: Add your message handler code here and/or call default

    if(nIDEvent == 20)   //這個20是第一個20.
    {
        
             DrawData();
        if(MySSocket.StopFlag)
            SendServer();
    }

    CDialog::OnTimer(nIDEvent);
}

KillTimer(20);  //銷毀標示符為20的定時器

說明:

SetTimer()定時器的第一個參數是定時器標識,可用任一非0的整數,第二個參數是定時器的時間間隔,單位是毫秒.第三個參數取值可以是NULL,
這時WM_TIMER的消息加入應用程序的消息隊列中,由CWnd類對象處理
例如 SetTimer(1,1,NULL)的時間間隔是1毫秒
下面例舉一下定時函數的種類:
Windows API 
SetTimer(HWND,UNIT,UINT,TIMERPROC);
參數意義:
1.記時器所在窗口句柄
2.序號
3.記時周期
4.記時器響應函數

CWnd類的
CWnd::SetTimer
UINT SetTimer(
UINT nIDEvent, //定時器的標識符
UINT nElapse, //所要定時的時間
void (CALLBACK EXPORT* lpfnTimer)(
HWND, UINT, UINT, DWORD) );
 下面是C++中如何測一個程序運行的時間舉例:
unsigned long ticks1,ticks2;
在你要測試的開頭寫上
ticks1 = GetTickCount();
測試部分結束時寫上
ticks2 = GetTickCount();

ticks2-ticks1就是所用時間
加上這個頭文件Winbase.h

下面再介紹一種測量程序執行時間的辦法:

     <time.h> 版本

 

  1. clock_t start = clock();  
  2. /*code to be tested*/         
  3. clock_t end   = clock();  
  4. cout<<end - start<<endl;  

  大家多這個版本多半不會陌生,這應該是最常用的執行時間測試方法了,能精確到ms級。

 

在程序運行時打印到屏幕上的函數TRACE()
 TRACE("距離:%d",m_DIST[i]);//在輸出欄輸出信息。
就是記錄日志信息的。%s在程序執行的時候替換成address對應的值。%d替換成函數WSAGetLastError()返回的錯誤碼。
總體翻譯過來就是Server "address" Can't Find Code="WSAGetLastError()"
具體是寫到文件裡邊,還是輸出到標准輸出即屏幕上,這個要看TRACE的實現了。



還有一個定時的方法,用sleep()函數實現。調用windows.h

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved