1

時間のカウントを開始する関数またはライブラリを知っている人はいますか? イベントが発生するまでの時間をカウントする必要があるプロジェクトに取り組んでいるためです。

擬似コード

start time
if ( seconds % 2 == 0 )
{
    counter++

}

素敵な数字なので2秒を選びました

4

1 に答える 1

1

通常、定期的なイベントの生成は、オペレーティング システム コールを使用してオペレーティング システムのタイマー サービスを使用し、かなり正確なタイマー イベントを提供する別のスレッドを使用して行われます。別のスレッドは、タイマー イベントをスケジュールし、タイマーが期限切れになるまで待機し、その時点でスレッドがウェイクして実行を開始します。作業が完了すると、新しいタイマー イベントがスケジュールされます。

ただし、あまり正確さが必要ない場合は、指定されたミリ秒数の待機を実行してからイベントを発行し、ループバックして時間指定の待機またはスリープを再度実行するスレッドのアプローチを取ることができます。

これの最も重要な部分は、通常、メインスレッドがブロックされないように、別のスレッドになるのを待っているものを用意する必要があるということです。アイデアは、メイン スレッドと他のスレッドがユーザー インターフェイス イベントなどの独自のイベントを処理している間に、イベントのジェネレーターとして機能する作業スレッドを持つことです。

C++ use thread as timerを参照してください。

また、このコードプロジェクト Threads と Timers

于 2013-04-07T03:20:52.723 に答える