2011-07-19 63 views
0

我正在用C++編寫一個程序,我需要每250毫秒調用一次函數。在C#中非常容易,但我不知道如何在C++中實現它。如何在C++中使用間隔來實現計時器

我真的很感激,如果有人可以建議我的解決方案。

+1

你是否需要在忙碌的環境中等待,或者你需要在此期間完成其他任何事情?在後一種情況下,您將需要一些多線程,或者您的主循環只需每次檢查間隔是否已到。 –

+0

你有任何鏈接來實現使用多線程? – MKS

+0

多線程並沒有一成不變的配方。 Boost.ASIO有一個現成的計時器,你可以在一個單獨的線程中運行ASIO服務,或者你可以推出你自己的睡眠功能並使用''啓動它......你必須找到睡眠的方法在短時間內,我認爲這是平臺依賴性的(在Linux中你有'usleep')。 –

回答

-1

SetTimer函數用於創建Windows計時器。

+0

http://www.daniweb.com/software-development/cpp/code/217306 – MKS

+0

這不是標準的C++。 – Alex

+0

@Alex不,不是,但問題的背景聽起來像是他們使用Windows。如果對C++的更新更新增加了一種跨平臺的標準方法,那麼您可以自由編寫自己的答案。讓我知道如果你這樣做,我可以看看它。 –

1

您可能想要查看一些稱爲增量時間的事情。這用於遊戲編程以防止幀率失控。這是必要的,因爲不同的機器運行不同的硬件,因此會以不同的速度運行。因此,您尋找的250ms可能是一臺機器上的x個週期數,但是當您轉到另一臺機器時,它可能是y個週期數。