【发布时间】:2018-08-30 19:49:09
【问题描述】:
目前,我正在开发一个使用 Visual Studio 2010 或更低版本为 Windows 开发的旧项目(使用 C 和 C++)。我们希望将其更新为较新的版本,例如 Visual Studio 2015 或 2017。
我发现_sleep() 函数是no longer supported by Microsoft,而我将使用Sleep() 函数。
我没有为旧的_sleep() 函数找到等效的documentation,我想知道这两个函数的行为是否完全相同?这个MSDN post 让我想知道唯一的区别是否在于参数的类型?
提前感谢您的回答。
【问题讨论】:
-
如果你想现代化你的代码,你可以看看
std::this_thread::sleep_for。 -
正如文档所述。切换到
Sleep应该是从_sleep的无缝过渡 -
感谢
sleep_for功能。我们对 C 项目也有同样的问题(我也会添加 C 标签)。 -
sleep() 是一个posix 函数,曾经被Windows NT 和微软的C 编译器支持。在 posix 子系统停止使用后,它获得了一个前导下划线,全局命名空间中有太多短小写标识符。只要您考虑 posix 函数,您不妨考虑 Windows 函数 :)
-
@HansPassant - Windows 从未完全支持 POSIX。你如何解释 sleep() 接受秒和 _sleep() 毫秒。