web-dev-qa-db-ja.com

ストップウォッチvsタイマー-いつ使用するか

この質問を許してください、しかし私はいつどれを使うべきかについての良い情報源を見つけることができないようです。簡単に説明していただければ幸いです。

さらに、私はこのジレンマに直面しています。

ほら、私は単純なアプリケーションをコーディングしています。経過時間を表示したい(hh:mm:ss形式など)。ただし、その時間間隔を「スピードアップ」または「スローダウン」できるようにする(つまり、リアルタイムで1分がアプリで1時間に等しくなるようにスピードアップする)。

たとえば、Youtubeビデオ(*ビデオの特定の部分にジャンプできるという事実を考慮しないでください*)では、そのビデオの視聴に費やされた実際の時間が左下隅に表示されます。画面ですが、オプションメニューをナビゲートすることで、ビデオの速度を上げたり下げたりすることができます。

Youtube (2015) video player control bar

そして、実際には、速度係数と一致する方法で時間が更新されることがわかります(たとえば、2倍の速度を選択すると、以下のタイマーが通常の2倍速く更新されます)。この速度はいつでも変更できます。 。

enter image description here

これは私がちょっとしたいものです。 Youtubeビデオが経過時間を測定する方法や、時間間隔を変更できるという事実のようなもの。では、2つのうちどちらを選ぶべきだと思いますか?タイマーまたはストップウォッチ?

ちなみに、私はWindowsフォームアプリケーションをコーディングしているだけです。私は何かをシミュレートしていて、ユーザーが望むときにいつでもスピードアップできるようにしたいと思っています。簡単かもしれませんが、適切なアプローチを実装したいと思います。

13
user4835507

私の知る限り、主な違いは次のとおりです。

タイマー

  1. タイマーは、たまにいくつかの操作/メソッドを実行する単純なスケジューラーです
  2. 別のスレッドでメソッドを実行します。これにより、メインスレッドのブロックが防止されます

タイマーは、何もブロックせずに特定の時間間隔でタスクを実行する必要がある場合に適しています。

ストップウォッチ

  1. ストップウォッチはデフォルトで同じスレッドで実行されます
  2. 時間をカウントし、TimeSpan構造体を返します。これは、追加情報が必要な場合に役立ちます。

ストップウォッチは、時間を監視し、メソッドが実行するプロセッサティックの経過時間などに関する追加情報を取得する必要がある場合に適しています。

19
Fabjan

これは、 ここ を含む他の多くの質問ですでにカバーされています。基本的に、あなたはスピードファクターでストップウォッチを持つことができます、そして結果はあなたの「経過時間」です。より複雑なアプローチは、Timer およびIntervalプロパティの変更 を実装することです。

1
SpaceSteak