C # WinForm ne répond pas - System.Speech - Aide
-
21-09-2019 - |
Question
Voici un code du formulaire Windows C #
SpeechSynthesizer audio = new SpeechSynthesizer();
audio.Speak(textBox1.Text);
- Cela lire tout ce qui est dans la zone de texte
problème en essayant de mettre en œuvre la pause et d'arrêter le bouton feature.Any ou menuitem ne marche pas obtenir lorsque le code cliqués lit quelque chose
public void button1_Click(object sender, EventArgs e)
{
//Nothing gets executed here when the code is reading
}
Je viens de lire il y a SpeakProgressEventArgs http: // msdn. microsoft.com/en-us/library/system.speech.synthesis.speakprogresseventargs%28VS.85%29.aspx
i essayé synthé ... asyncancel ... mais l'événement de clic du bouton ne marche pas été exécutée
La solution
Utilisez la méthode SpeakAsync () à la place. Cela empêche l'interface utilisateur de bloquer la méthode Speak (), il ne peut pas répondre aux clics de bouton alors qu'il est bloqué. Vous pouvez utiliser SpeakAsyncCancelAll () pour l'empêcher de nattering sur.
Autres conseils
vous devez gérer ce audio.Speak(textBox1.Text);
bloc en utilisant Threads
Thread t = new Thread(() =>
{
SpeechSynthesizer audio = new SpeechSynthesizer();
audio.Speak(textBox1.Text);
});
t.Start();
Maintenant, comment arrêter un fil conducteur? très bien expliqué dans cette affiche