Tag: 嘟嘟声

C#:产生连续音,直到被打断

我有一个用户与C#WPF程序一起交互的设备。 当用户按下设备上的按钮时,该程序必须发出哔声,指定的时间长度或用户按下按钮的时间,以较短者为准。 可用于产生蜂鸣声/音调的唯一扬声器是计算机BIOS扬声器; 我们不能假设其他发言者在附近(并且假设不会有任何其他发言者实际上是安全的)。 如何在必要的持续时间内产生连续的音调? 到目前为止,我发出了许多哔哔声,但不是连续的音调。 首先,启动一个线程: private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { if(this.Visibility == Visibility.Visible){ mBeepThread = new Thread(new ThreadStart(ProduceTone)); mBeepThread.Name = “Beep Thread”; mBeepThread.Start(); } } 线程本身: bool mMakeTone = false; private void ProduceTone(){ while(this.Visibility == Visibility.Visible){ if(mMakeTone ){ Console.Beep(); } else{ Thread.Sleep(10); } } } 然后在按下按钮的持续时间内将mMakeTone布尔值翻转为true,直到设备本身指定的时间。 我怀疑它只是对上面的Console.Beep()行的快速更改,但我不确定它会是什么。