【问题标题】:MFC C++ put a 1000 MS sleep on main thread?MFC C++ 在主线程上放置了 1000 MS 睡眠?
【发布时间】:2012-04-05 12:53:08
【问题描述】:

我相信这个问题足够简单。

使用 MFC C++,我需要包含哪些标头以及需要调用哪些函数才能在主线程上放置 1000 毫秒睡眠。

在 C# 中很简单,就像 Thread.Sleep(1000);那么有没有像 C++ 那样简单的东西呢?

我正在播放声音,播放声音后退出。声音没有机会播放以退出快速。

【问题讨论】:

  • 简单的 Sleep(1) 怎么样?我相信您不需要为此包含任何标题。
  • Sleep 不是一个好的解决方案,除非主线程与声音不同步并不重要。声音播放线程应该发出一个事件,告诉主线程可以退出。 CreateEvent, SetEvent, WaitForSingleObject.

标签: c++ multithreading mfc sleep thread-sleep


【解决方案1】:

就这么简单:

#include <cstdlib>

std::sleep(1);

或者,在 C++11 下:

#include <chrono>
#include <thread>

std::this_thread::sleep_for(std::chrono::seconds(1));

【讨论】:

  • 感谢它的工作。它不会让我接受这个作为答案,但我会的!
  • std::sleep 不会在 VS 2015 中使用 MFC 为我编译,即使使用 #include 。但是 std::this_thread::sleep_for 替代方案效果很好。
【解决方案2】:

如果你想坚持使用 MFC:

#include <windows.h> 

然后:

Sleep(1000);

文档: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686342(v=vs.85).aspx

【讨论】:

    猜你喜欢
    • 2017-12-01
    • 2014-07-05
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多