延时函数 ::GetTickCount()定时不准 参考http://www.cnblogs.com/jxsoft/archive/2011/10/17/2215366.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 主要问题是在较慢的机器上,等别的消息执行完了再定时肯定会误差大。不知道实际需求是什么,用下面的方法试试吧QueryPerformanceFrequency+QueryPerformanceCounter能够精确到 ms 级,应该能满足要求。再高的精度就要想别的方法了。 GetTickCount()精度有限。受CPU影响。QueryPerformanceCounter等精度高一点 我用此函数监视串口的数据,串口的数据在6s内任何一个时间到达,我用此延时函数(100ms延时)循环检测串口数据。 void CGobal::MyDelay(long inMsecond){ if (inMsecond<200) { if (inMsecond<0) inMsecond=1; Sleep(inMsecond); return; } MSG msg; long i=0; while (1) { ::GetMessage(&msg, NULL, 0, 0); ::TranslateMessage(&msg); ::DispatchMessage(&msg); Sleep(200); i+=200; if (i>inMsecond) break; }} 窗体的焦点问题,我搞不懂了 VC下标签的问题 atl无窗口加定时器,为何关闭不掉哟?? 问一个很简单的问题,如何生成Release版本? 请问怎样做一个选择路径的对话框? 请教各位大虾COM+方面的好书(从基础到高级)谢啦 配置ODBC的问题! help me!CSocket的应用,谁有例子,让我see 一下,OK? 如果编写一个 升级仪表软件 的 软件 (电脑连接仪表) 哪里有wdm编程的书下载 有关QT的一个问题。不是技术问题,大家请进。 Application Hang
不知道实际需求是什么,用下面的方法试试吧
QueryPerformanceFrequency+QueryPerformanceCounter
能够精确到 ms 级,应该能满足要求。再高的精度就要想别的方法了。
{
if (inMsecond<200) {
if (inMsecond<0) inMsecond=1;
Sleep(inMsecond);
return;
}
MSG msg;
long i=0;
while (1) {
::GetMessage(&msg, NULL, 0, 0);
::TranslateMessage(&msg);
::DispatchMessage(&msg);
Sleep(200);
i+=200;
if (i>inMsecond) break;
}
}