C++时间管理与CPU
我试图让代码每0.200秒运行一次,结果是: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
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_事件;迭代_循环;}