- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 C# 中,我可以执行 Console.Beep()。但是,如果您将持续时间指定为 1000 或 1 秒,则在该秒过去之前,它不会执行下一行代码。
有没有什么方法可以以非阻塞方式执行 Console.Beep(),这样它会继续发出哔哔声,并在发出哔哔声的同时继续执行下面的代码?
最佳答案
您可以在单独的线程中运行它。
new Thread(() => Console.Beep()).Start();
我今天早上醒来发现对这个答案的评论如潮。所以我想我会加入一些其他的想法。
通过使用以下方法,也可以在线程池上运行线程来实现上述目标。
Action beep = Console.Beep;
beep.BeginInvoke((a) => { beep.EndInvoke(a); }, null);
上面代码中重要的一点是,如果您使用 BeginInvoke,请在您的委托(delegate)上调用 EndInvoke,否则您将遇到内存泄漏。
来自 MSDN:重要:始终调用 EndInvoke 来完成您的异步调用。 http://msdn.microsoft.com/en-us/library/2e08f6yc(VS.80).aspx
或者,您可以使用专用的 Beep 线程在需要时在后台运行蜂鸣声,而无需每次都创建新线程或使用线程池(参见 Simon Chadwick 的评论)。作为一个简单的例子,你可以有以下内容。请注意,我将 1 作为 maxStackSize 传递,这将确保为该线程提交最小(不是 1,最小)堆栈空间,有关这方面的更多详细信息,请参阅 MSDN。
class BackgroundBeep
{
static Thread _beepThread;
static AutoResetEvent _signalBeep;
static BackgroundBeep()
{
_signalBeep = new AutoResetEvent(false);
_beepThread = new Thread(() =>
{
for (; ; )
{
_signalBeep.WaitOne();
Console.Beep();
}
}, 1);
_beepThread.IsBackground = true;
_beepThread.Start();
}
public static void Beep()
{
_signalBeep.Set();
}
}
有了这个,您需要做的就是在不创建新线程的情况下随时运行后台蜂鸣声,就是进行以下调用
BackgroundBeep.Beep();
关于c# - 如何执行非阻塞 System.Beep()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2751686/
Andrid 手机上是否有一些默认的、可以安全使用的“哔哔”式铃声? 我有以下代码 final Ringtone alarm = RingtoneManager.getRingtone(getActi
我整天都在摆弄这段代码,但我又被卡住了……提前致谢 基本上这个程序给我带来了问题,下面是我认为导致问题的代码片段。基本上,用户可以改变他们的“当前温度”,如果它超过上限或下限的阈值,则会调用“comp
我正在使用 motorolla MC55,它会扫描并在成功扫描时发出蜂鸣声,我需要禁用该功能,以便它在扫描时根本不会播放任何声音。 有什么办法可以实现吗? 最佳答案 扫描以下条形码以启用/禁用提示音。
我在远程机器上运行一个长脚本,我想在脚本结束时听到哔声。在我的机器上,我可以在脚本末尾添加: echo -e '\a' > /dev/console 但这在提示的远程机器上不起作用: -bash: /
本文实例讲述了python调用机器喇叭发出蜂鸣声(Beep)的方法。分享给大家供大家参考。具体分析如下: 下面这段python代码可调用机器喇叭发出蜂鸣声(Beep),当然你的喇叭必须能响,否则可
VB6 有蜂鸣功能。我很想知道调用此函数时发出的哔哔声究竟是什么。谢谢。 最佳答案 更准确地说,VB6 有一个 Beep 子程序,而不是一个函数。 这与 Kernel32 Beep 入口点完全无关,并
请原谅这个愚蠢的新手问题,但是:当我(不小心)在命令行窗口中按退格键时,如何关闭 MATLAB 发出的极其烦人的“哔”声? 最佳答案 只是beep off在最新版本中。 https://www.mat
如何用可调节音量的扬声器发出的现代蜂鸣声替换 Windows.Beep? 最佳答案 如果您想在显示 MessageBox 时使用 Windows 使用的“标准”蜂鸣声,您可以调用 Windows.Me
我正在研究HAM Radio的辅助项目,在该项目中,用户输入文本,然后使用.NET的Console.Beep()回放Morse Code。 我正在寻找可能的解决方案,以将其导出为录音(音频文件),以便
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
所以我的代码是这样的: import winsound import time length = 250 class Notes(): def frequency(halfNotesFromA
是否有任何类可以通过不同的音调在扬声器中发出声音?System.Beep() 是原始的,我不能以双倍频率发送到那里。 比方说,我想要播放 A 声音或 B# 声音。我希望函数调用像这样: double
在下面的代码中我收到一个错误,但不知何故我找不到信息来修复它。如有任何误解,敬请谅解。 import com.sun.jna.Library; import com.sun.jna.Native; i
在旧服务器上,我使用mysqldump 命令备份了 MySQL 数据库。 在新服务器上,使用 5.6 版的 MySQL,同样的命令给我错误 unknown option '-no-beep' 无论它插
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
System.Media.SystemSounds.Beep.Play(); 这就是我目前使用的,但它不会在终端服务器/Citrix(Windows2008)中的客户端(Windows7)上发出蜂鸣声
我正在尝试使用 beep.js 创建“生成分数”根据我拥有的一些 map 数据。我正在使用 new Beep.Voice 作为与特定类型数据相关的注释的占位符(总共 7 个声音)。显示数据时,应播放语
在 C# 中,我可以执行 Console.Beep()。但是,如果您将持续时间指定为 1000 或 1 秒,则在该秒过去之前,它不会执行下一行代码。 有没有什么方法可以以非阻塞方式执行 Console
我如何捕获/重定向由以下人员产生的声音: Console.Beep(400, 1000); 要么到某个字节缓冲区,要么直接到一个 wav 文件都可以。 我搜索过,但只找到了重定向文本输出的方法,而不是
我试图编写一个非常简单的乐谱,但是一开始我只想在控制台中对其进行测试。我知道Beep()方法,但是我的计算机没有该类型的扬声器,因此Beep()无法正常工作。还有其他选择吗? 如我所说,我的计算机没有
我是一名优秀的程序员,十分优秀!