我很少使用windows的C弄正经工程,这下被坑了。有如下测试程序,想做一个简单的库测试,Sleep()据说是毫秒级延迟。于是我很自然地使用1ms进行驱动Cwhile(1) { MBx_Ticks(1000); // 换算为微秒传入MBx驱动 TestMemUpdate(1); // 毫秒传入测试函数 Sleep(1); } 那当然是完全不准,和python一样不靠谱,可以添加如下代码进行实际延迟测试。C#include <windows.h> #include <time.h> SYSTEMTIME t1; while(1) { MBx_Ticks(1000); // 换算为微秒传入MBx驱动 TestMemUpdate(1); // 毫秒传入测试函数 Sleep(1); /* 打印毫秒时间戳 */ GetSystemTime(&t1); printf("%ld\n", (int)t1.wMilliseconds); } 浅截取一小段如下,可以看到和1ms相去甚远,仅做测试是无所谓啦。SH276 291 307 323 339 354 370 385
windows C Sleep()函数精度
我很少使用windows的C弄正经工程,这下被坑了。
有如下测试程序,想做一个简单的库测试,Sleep()据说是毫秒级延迟。于是我很自然地使用1ms进行驱动
那当然是完全不准,和python一样不靠谱,可以添加如下代码进行实际延迟测试。
浅截取一小段如下,可以看到和1ms相去甚远,仅做测试是无所谓啦。