windows.h - 哔()

时间:2016-12-03 16:13:51

标签: c++ windows

Beep()函数是否会在发出蜂鸣声时实际冻结控制台。当我们将Sleep()函数用于Sleep(1000)时,我们停止执行1秒钟。我想知道是否也发出了哔哔声

实施例

嘟嘟声(1000,500) - 冻结控制台一秒钟?

谢谢

2 个答案:

答案 0 :(得分:2)

According to Microsoft

  

在扬声器上生成简单的音调。功能是同步的;它执行警报等待在声音完成之前不会将控制权返回给其来电。

可以通过向线程的消息队列发送消息来中断可警告的等待。这通常需要IO完成或一些刻意的操作,但它可以提前返回,并且不能计入时间。

要改变嘟嘟声的长度,请相应地设置参数dwDuration

如果您的问题是非响应式控制台,请使用另一个线程发送蜂鸣声。 std::async may be helpful here。例如:

auto asyncbeep = std::async(std::launch::async, []{ Beep(1000,500); });

答案 1 :(得分:0)

This website有答案。

  

该功能是同步的;它执行可警告的等待,并且在声音结束之前不会将控制权返回给其来电者。

所以它会暂停,就像Sleep()