100送上,紧急请教执行一条语句后半分钟再执行另一条语句怎么实现? sleep()或for(int i=0;i<3000;i++); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sleep影响其它进程吧?用timer是否更理想? sleep(30000),而且这个函数对系统性能一点也没影响,调用这个函数等于告诉系统,在30000毫秒内不用给我分配执行时间 <p><font face="隶书" size="7" color="#FF0000"><b>如果还有什么问题,请和我联系</b></font></p> for循环不行啊,你怎么知道3000就是30秒?而且会极度的占用cpu时间。 哈哈,蹭分!sleep(30000)绝对没错 xinxin() ( ),tomcat_ok(雄猫) ,timer怎么用呀?我用Sleep(30000),结果其他的程序也都不执行了,死机30秒,这不行 sleep(30000);对内存影响太大。用Timer最好了。 SetTimerWM_TIMER消息KillTimer 如果想很好地利用CPU的话,最好采用多线程。这样,在一个线程中睡眠,不会影响其它线程的执行。 看来你用的是单线程,长时间的Sleep把线程阻塞住了。如果不想或不会多线程的话,加一个消息泵也可以防止程序挂起:for (int i = 0; i < 300; i++){PumpWndMsg();Sleep(100);}void PumpWndMsg(){ MSG msg; while (::PeekMessage(&msg, (HWND) NULL, 0, 0, PM_REMOVE)) { if ( msg.message==WM_QUIT ) { ::PostQuitMessage(-1); break; } if (!AfxGetApp()->PreTranslateMessage(&msg)) { ::TranslateMessage(&msg); ::DispatchMessage(&msg); } }} windows的精确计时是一个很难解决的问题,但这问题只出现在ms级,sleep(10)作一次就知道了。但是,半分钟,如此大的时间间隔,直接SetTimer(hWnd,nIDEvent,uElapse,lpTimerFunc),不信用QueryPerformanceFrequency(lpTime);QueryPerformanceCount(lpTime)测一下,毫秒级的误差。对了,老机器的误差会大些。 窗口最小化消息是哪个 关于多线程程序的断点调试 win2000下IE6加载ATL做的activex控件直接红叉 如何加快查询sqlserver数据库的速度? 求教好的边缘增强方法 使用CreateTimerQueue函数,为什么不能编译 在线请教 本人想做一个配置,连接,更改连接数据库的程序,各位有何高见? 这个错误的原因是什么? user breakpoint called from code at (急 在线等待) 求大神!!!关于MFC项目的编码 请问如何动态更改标题栏的标题?? 怎么样得到文本框中的值。
我用Sleep(30000),结果其他的程序也都不执行了,死机30秒,这不行
用Timer最好了。
WM_TIMER消息
KillTimer
{
PumpWndMsg();
Sleep(100);
}void PumpWndMsg()
{
MSG msg;
while (::PeekMessage(&msg, (HWND) NULL, 0, 0, PM_REMOVE))
{
if ( msg.message==WM_QUIT )
{
::PostQuitMessage(-1);
break;
}
if (!AfxGetApp()->PreTranslateMessage(&msg))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
}
作一次就知道了。但是,半分钟,如此大的时间间隔,直接SetTimer(hWnd,nIDEvent,uElapse,lpTimerFunc),不信用QueryPerformanceFrequency(lpTime);QueryPerformanceCount(lpTime)测一下,毫秒级的误差。
对了,老机器的误差会大些。