C #: Stwórz ciągły dźwięk, dopóki nie zostanie przerwany

Mam urządzenie, z którym użytkownik współpracuje obok programu C # WPF. Program ten musi wydawać dźwięk, gdy użytkownik naciśnie przycisk na urządzeniu, przez określony czas lub tak długo, jak użytkownik naciśnie przycisk, w zależności od tego, który z nich jest krótszy. Jedynym głośnikiem dostępnym do wyprodukowania sygnału / dźwięku jest głośnik BIOS komputera; nie możemy zakładać, że inne głośniki są w pobliżu (i rzeczywiście można założyć, że nie będzie żadnych innych głośników).

Jak mogę wygenerować ciągły dźwięk przez wymagany czas trwania?

To, co do tej pory posiadam, generuje wiele dźwięków, ale nie ciągły dźwięk.

Najpierw uruchamiany jest wątek:

    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();
        }
    }

Sam wątek:

    bool mMakeTone = false;
    private void ProduceTone(){
        while(this.Visibility == Visibility.Visible){
            if(mMakeTone ){
                Console.Beep();
            }
            else{
                Thread.Sleep(10);
            }
        }
    }

Następnie wartość logiczna mMakeTone jest odwracana do wartości true podczas trwania naciśnięcia przycisku, do czasu określonego przez samo urządzenie.

Podejrzewam, że jest to szybka zmiana w powyższej linii Console.Beep (), ale nie jestem pewien, co to będzie.

questionAnswers(4)

yourAnswerToTheQuestion