风过空庭,字句正徐来。
关于关于本站关于我给我点钱
更多时间线友链文件服务wiki
联系写留言发邮件GitHub
© 2024-2026 yono. | RSS 订阅 | 站点地图 | | Stay hungry. Stay foolish.
Powered by Mix Space&
白い
.
| 粤 ICP 备2024284785号-1 |
正在被0人看爆
且听风定,再看句成。
残片纸堆

windows C Sleep()函数精度

w43w
AI·GEN

关键洞察

windows C Sleep()函数精度

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • 我很少使用windows的C弄正经工程,这下被坑了。

    有如下测试程序,想做一个简单的库测试,Sleep()据说是毫秒级延迟。于是我很自然地使用1ms进行驱动

    C
    while(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相去甚远,仅做测试是无所谓啦。

    SH
    276
    291
    307
    323
    339
    354
    370
    385