一定期間後にメソッドを繰り返し呼び出すWindowsフォームアプリケーションがあります。だから私はCPU使用率が心配です。私はそれを行う2つの方法を知っています:
1)タイマーコンポーネントの使用2)ループでの
呼び出しThread.Sleep(time)
それで、どちらが良いですか?CPUをあまり使用しないのか、CPUを使用しなかったのか。
特定のコードブロックを特定の時間ごとに定期的に実行する場合は、そのために設計されたタイマーを使用します。CPUアーキテクチャの知識が少しあると、正確な時間遅延を生成するためにプロセッサやOSリソースを消費しない汎用タイマーがあることがわかります。
一方、スレッドを一時停止状態に維持し、実行に切り替えてレディキューにエンキューすると、CPUとOSのリソースが消費されます。
ループを1msに設定しても、CPU使用率を実際に測定することはできないため、問題ではありません。それはそんなに低いでしょう。
信頼性、保守性、および読みやすさの理由から、を使用する必要がありますSystem.Windows.Forms.Timer
。