c++ 我想让一个无限循环的while语句执行5分钟 怎么办 请高手解答!

如题

在现在多任务系统中,这种延时方法能避免就避免,因为它会光占资源不干活,应该学习“定时器”知识,利用定时器做你的事情。

使用while循环,由于你的CPU随时可以被别人占用,楼上的方法其实无非保证5分钟,只能保证不小于5分钟。循环永远无法准确做到这点(当然,其他方法也永远不可能,除非是你独占式系统)追问

请问是一楼的好点 还是二楼的好点

追答

都不好,因为你这种设计本身的思路就不好。不应该通过循环做任何延时
顺便说一句,楼上两种方法没有任何差别

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-21
#include <ctime>
std::time_t c=std::time(NULL);
while(std::difftime(time(NULL),c)<300){
}

 不能准确保证5分钟,不过执行5分1秒或者5分0.7秒大概不至于出多大问题……

第2个回答  2013-09-21
#include<iostream>

#include<windows.h>

using namespace std;

void main()

{

 int count=0;

 while(count<5)

 {

     Sleep(1000*60);

  count++;

 }

}

第3个回答  2013-09-21
DOS时代,可以通过写驻内存程序监视时间。
多任务时代,还是用定时器有效率。当然,用一个线程也可以。
相似回答