Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++时间管理与CPU_C++_Windows_Timer_Cpu - Fatal编程技术网

C++时间管理与CPU

C++时间管理与CPU,c++,windows,timer,cpu,C++,Windows,Timer,Cpu,我试图让代码每0.200秒运行一次,结果是: void Run() { while( running ) { QueryPerformanceCounter( &start ); frame = (start.QuadPart - finish.QuadPart ) / (double)freq.QuadPart; while (frame > 1.00) { QueryP

我试图让代码每0.200秒运行一次,结果是:

void Run()
{

    while( running ) 
    {

        QueryPerformanceCounter( &start );
        frame = (start.QuadPart - finish.QuadPart ) / (double)freq.QuadPart;
        while (frame > 1.00)
        {
            QueryPerformanceCounter( &finish );
            std::cout << "Delta: " << frame << std::endl;
        }


    }   
}
硬编码帧>1只是一个示例。这段代码确实在一秒钟内运行,但我面临两个问题。 首先-我在接受网络TCP/udp ip客户端时会遇到任何问题吗? 第二,由于这个应用程序,我的cpu以25%的功率工作,如何避免不必要的cpu使用?
谢谢你的建议

@Hakon89好吧,要么你占用CPU,要么你什么都不做。睡眠没有任何作用。或者您执行其他操作,例如等待网络I/O或等待用户输入,而用户输入也不起任何作用-还可以查看您是否正在创建游戏。@Hakon89 Um…您希望等待X ms,然后使用完整的CPU核心运行,而不必忙着循环aka。您想休眠线程。@Hakon89是的,休眠不使用CPU。等待I/O等操作也不会使用CPU。@船长很显然,这不是必然的事实,您最终总是在嵌入式应用程序中这样做没有操作系统==没有线程,只轮询类似while的东西!kill_标志{do_事件;迭代_循环;}