4

アプリケーションの CPU 使用率を特定の制限に制御する必要があります。私のアプリケーションは、Win XP、Vista、Win7、および Windows 8 で動作します。

現在のプロセスの CPU 使用率を取得し、Sleep() メソッドを使用する実装を試みました (API の GetProcessTimes と GetSystemTimes を使用しました)。

擬似コード:

    for(;;)
    {
         //Get the current process's CPU Usage
         int cpuUsage  = CalculateCPUUsage();
         if(cpuUsage > 50)
             Sleep(10)
         else
        {
           //Project implementation code
        }    
    }

質問:

プロセスの CPU 使用率を監視し、CPU が許可された制限に達するたびにプロセスを停止して続行するアプリケーションを作成できますか?

よろしくお願いします。

4

2 に答える 2

1

他のスレッドに有利になるようにプロセスの優先度を下げたいだけの場合は、SetThreadPriority で優先度を設定できます。次に例を示します。

SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
于 2013-05-03T04:41:57.303 に答える