フォアグラウンドで実行されているC++アプリケーションがあります。アプリケーションと同時に実行されるタイマーが必要です。タイマーがゼロになったら、ウィンドウをポップアップするタイマーが必要です。
who
アプリケーションがスリープしているため、sleep()を使用できません。これを行う方法についてアドバイスしてください。
フォアグラウンドで実行されているC++アプリケーションがあります。アプリケーションと同時に実行されるタイマーが必要です。タイマーがゼロになったら、ウィンドウをポップアップするタイマーが必要です。
who
アプリケーションがスリープしているため、sleep()を使用できません。これを行う方法についてアドバイスしてください。
C ++ 11を使用しているので、thread
ライブラリを使用することをお勧めします。
おそらく必要なのは、またはのいずれstd::this_thread::sleep_for
かですstd::this_thread::sleep_until
。これは、タイマースレッドのコンテキストで呼び出すことができます。
このようなもの...
std::thread timer([]() {
std::this_thread::sleep_for(std::chrono::seconds(5));
std::cout << "hello, world!" << std::endl;
});
std::cout << "thread begun..." << std::endl;
timer.join();
Boostライブラリをダウンロードしてから、この非常に簡単なチュートリアルを使用してBoostスレッドを作成することをお勧めします。
Boostのダウンロード/インストール/構成に時間をかけたくない場合は、Windowsスレッドを使用してください。(私はあなたがsleep()
あなたがWindows上にいることを使おうとしていると仮定しています)。ただし、Windowsスレッドは、Boostスレッドよりも理解が複雑です。
実際のプログラムでは、次のようなものを含める必要があります(例としてBoostを使用)。
void timer() {
sleep(x);
//Whatever code here to make your popup window.
return NULL;
}
int main() {
boost::thread prgmTimer(&timer);
//Regular code here.
//prgmTimer.join(); //Remove the comment on that command if you want something to
//to happen after your timer runs down and only if your
//timer runs down. (Ex. the program exits).
return 0;
}