c - 如何等待30小时?

标签 c winapi

我想等待很长一段时间(例如:30 小时),最长延迟 2 或 3 秒。我读到 Sleep()WM_TIMER 不准确,可能会在指定时间后等待几分钟。

唯一可行的解​​决方案是使用 GetTickCount(),那么我应该使用它还是有其他解决方案?

最佳答案

Windows 不是实时操作系统。 Windows 中没有可以提供任何此类保证的工具。

假设你可以做这样的事情:

  1. 等待 1/2 的时间。
  2. 等待剩余时间的 1/2。
  3. 依此类推,直到您的等待时间低于您期望的准确度。

但即便如此,Windows 机器上的时钟是否能以您期望的精度报时?

如果您真的关心计时的准确性,您需要一个实时操作系统,可能还需要一个具有保证和已知准确性的专用时钟。

关于c - 如何等待30小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155491/

相关文章:

winapi - 使用打开的句柄删除或重命名文件

c++ - 使用 CreateProcessAsUser 函数从提升的进程创建非提升的进程

用 C 计算二维数组内的平均值

c - linux stat函数中的struct stat * buffer和&buffer有什么区别

c++ - 模拟模板的 C 错误

c++ - InitializeSecurityContext (Schannel) 的 TLS 握手过程

c++ - 忽略来自 WindowFromPoint() 的 HWND

c - 打印列表并用逗号分隔值并以点结尾

c - 在 Xlib 中,如何在事件发生之前制作动画?

visual-studio-2008 - 编译器不遵循 Visual Studio C++ 中的符号链接(symbolic link)