以下是C#Windows窗体
中的代码SpeechSynthesizer audio = new SpeechSynthesizer();
audio.Speak(textBox1.Text);
尝试实施暂停和停止功能时出现问题。当代码读取内容时,任何按钮或menuitem都没有被点击
public void button1_Click(object sender, EventArgs e)
{
//Nothing gets executed here when the code is reading
}
我刚看到有SpeakProgressEventArgs http://msdn.microsoft.com/en-us/library/system.speech.synthesis.speakprogresseventargs%28VS.85%29.aspx
我尝试了synth ... asyncancel ... 但是按钮的点击事件没有被执行
答案 0 :(得分:4)
请改用SpeakAsync()方法。这可以防止UI在Speak()方法上阻塞,它在阻止时无法响应按钮点击。您可以使用SpeakAsyncCancelAll()来阻止它进行模糊处理。
答案 1 :(得分:3)
您需要使用Threads
管理此阻止audio.Speak(textBox1.Text);
Thread t = new Thread(() =>
{
SpeechSynthesizer audio = new SpeechSynthesizer();
audio.Speak(textBox1.Text);
});
t.Start();
现在如何停止正在运行的线程?在这张海报中很好地解释了