顧客が 10 ~ 50 秒ごとにカフェテリアに入るカフェテリアをシミュレートするプログラムを書きたいと思います。そのため、呼び出される関数に存在するメニューカードを表示するために、10〜50秒ごとに呼び出される関数が必要でした
28411 次
4 に答える
4
メインループで時間を取得し、最後に関数を呼び出した時間と比較します (宣言時に「今」に初期化されます)。間隔よりも大きい場合は、関数を呼び出して、「最後に呼び出された」変数を現在の時刻に設定します。
于 2013-03-28T13:32:36.770 に答える
1
よりクロスプラットフォームで c++ STL を利用するタイマーについては、C++ Cross-Platform High-Resolution Timerを参照してください。
そこから、上記のクロスプラットフォーム タイマーの 2 つを使用して、10 ~ 50 秒ごとにループで関数を作成して呼び出すだけです。
于 2013-03-28T14:06:31.510 に答える
1
2 つのアプローチがあります。 1.非同期 2.同期
Win32、C++ を使用していると仮定します。Win32 API SetTimerを使用できます
UINT_PTR timerid = SetTimer(NULL, 0, ミリ秒, &callback);
ポーリングアプローチが必要な場合は、そのようなものを使用することをお勧めします
for(;;) { Say_Hello(); // Sleep for 50*1000ms Sleep(50000); }
于 2013-03-28T13:34:11.100 に答える