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 () выше, но я не уверен, что это будет.

Ответы на вопрос(4)

Ваш ответ на вопрос