6

アプリですぐに発生するはずのイベントを待機したいので、スレッドを待機させて後でウェイクアップしたくありません。Sleep(0)ハードウェア一時停止命令の使用との違いは何だろうか。

次のプログラムの CPU 使用率に違いは見られません。私の質問は、省電力の考慮事項に関するものではありません。

#include <iostream>
using namespace std;
#include <windows.h>

bool t = false;
int main() {
       while(t == false)
       {
              __asm { pause } ;
              //Sleep(0);
       }
}
4

2 に答える 2

-1

Sleepはシステム コールであり、OS が他のプロセスに CPU 時間を再スケジュールすることを可能にします (利用可能な場合)。

__asm {pause};ポータブルではありません。

どちらでもありませんSleepが、CPU レベルではなく、システム ライブラリ レベルです。

于 2011-09-20T16:13:09.820 に答える