折りたたみを複製したい(余分なCPUサイクルを使用)
-
23-09-2019 - |
質問
Extra CPUサイクルを使用して自分の処理の一部を行いたいと思っていますが、これを始める方法について誰かが私に正しい方向に向けられるかどうか疑問に思っていましたか?
解決
継続的に実行されるプログラムを作成することをお勧めします(たまにブロックすることを確認してください)、そして単に低い優先度に設定することをお勧めします。 OSスケジューラ(Windows/*nix)は、残りを自動的に処理する必要があります。
他のヒント
バックグラウンドで実行されるプログラムを作成することにより、追加のCPUサイクルを使用できます。
CPUの使用法を確認して、コンピューターがアイドル状態であることを確認することもできます(ただし、必ずしも良いアイデアではありません)、またはマウス/キーボードのアクティビティを聞くことができます。
C#でCPUの使用法を確認するには、次のコードを使用します。
float cpuUsage; //Between 0 and 100
using (var cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total")) {
cpu.NextValue(); //First call gives wrong values
cpuUsage = cpu.NextValue();
}
キーボードまたはマウスのアクティビティを確認するには、キーボード /マウスフックを使用する必要があります。見る ここ 指示について。
BackgroundWorkerを初期化するには、進捗レポートを有効にしてイベントハンドラを接続する必要があります。
// Enable progress reporting
backgroundWorker1.WorkerReportsProgress = true;
// Hook up event handlers
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
. 所属していません StackOverflow