2016-01-17 120 views
1

我想寫一個循環,每x毫秒運行一次,有沒有辦法在C++中有效地做這樣的事情?重複循環每'x'毫秒

希望有人能幫我一個例子,我將如何去寫一個循環這樣

+3

需要專用硬件和/或操作系統支持和/或驅動程序和/或其他東西。您的要求沒有詳細說明 - 我們不知道您是否可以使用sleep()循環或需要氫噴泉鍾。 –

回答

1

一個和最簡單的方法將使用WINDOWS.H庫的睡眠()功能。

#include "windows.h" 
... 
while(1) 
{ 
for(...) {} // your loop 
Sleep(miliseconds); 
if(something) { break; } // to prevent infinite looping. 
} 
... 

更好的解決方案將使用的std :: this_thread :: sleep_for()從<螺紋>頭。 more documentation and examples here

+0

這不保證每n毫秒執行一次,它假設沒有其他代碼運行(正在運行的代碼需要花費時間...)並且系統提供的睡眠功能不準確。 –

+0

@SamiKuhmonen同意。正如我所說的使用Sleep()函數,將完成工作,但有一些損失。我提出的第二個解決方案更好,更準確。 – ddacot

+0

謝謝,我記得Java和C#有一個函數,用於測量從特定行到另一行的時間,並將時間保存在變量中。 C++有類似的東西嗎? – ColdZer0