上記の操作をミリ秒単位で実行したい。どのライブラリと関数呼び出しを優先する必要がありますか?
2017年編集:C++ 11 sleep_for
はこれを行う正しい方法です。 以下のXornadの回答 を参照してください。
C++ 03:
Mac OS XはUnixベースであるため、ほとんどの場合、標準のLinux関数を使用できます。
この場合、usleep
(マイクロ秒単位で時間がかかります)を使用し、ミリ秒に1000を掛けてマイクロ秒を取得できます。
#include <unistd.h>
int main () {
usleep(1000); // will sleep for 1 ms
usleep(1); // will sleep for 0.001 ms
usleep(1000000); // will sleep for 1 s
}
この関数の詳細については、Linuxのmanページを確認してください。
コンパイラでC++ 11をサポートしている場合は、sleep_for
を使用して、OS固有のAPIを使用する必要をなくすことができます。 ( http://en.cppreference.com/w/cpp/thread/sleep_for )
#include <thread>
#include <chrono>
int main()
{
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
return 0;
}