2013-04-07 20 views
1

是否有人知道開始計算時間的函數或庫? 因爲我正在研究需要計算事件發生時間的項目。如何在C++中開始計時?

僞代碼

start time 
if (seconds % 2 == 0) 
{ 
    counter++ 

} 

我選擇2秒,因爲它是一個不錯的數字

+1

定時器通常通過調用操作系統來實現,因爲您正在運行的機器實際上是保持任何類型的「時間」。我們需要知道你在使用什麼機器(儘管我在Windows機器上假設C++?)。看看MSDN。 – Hydronium 2013-04-07 03:00:23

+0

是的我正在使用Windows電腦。 – hv16 2013-04-07 03:02:37

+1

訪問Microsoft提供的MSDN。他們擁有許多API函數的信息,計時器就在其中。 – Hydronium 2013-04-07 03:05:28

回答

1

典型的週期性事件發生時進行使用,它使用的操作系統調用中使用的操作系統計時器服務一個單獨的線程爲了提供合理準確的計時器事件。單獨的線程將安排計時器事件並等待計時器到期,線程在該時間點喚醒並開始執行。一旦工作完成,計劃一個新的計時器事件。

但是,如果不需要大量的準確性,您可以採取一種線程的方法來執行等待給定的毫秒數,然後發出一個事件,然後循環回來執行定時等待或再次睡眠。

其中最重要的部分通常是您必須擁有等待成爲另一個線程的東西,以便主線程不被阻塞。當你的主線程和其他線程正在處理它們自己的事件,比如用戶界面事件時,這個想法是有一個工作線程作爲事件的發生器。

參見C++ use thread as timer

也是這樣的codeproject Threads and Timers