挂起WebControl中的问题和C#中的SAPI [重复]

  可能重复:   SAPI或(文本到语音)&hellip的同步问题; C# 我用WebControl创建了一个浏览器。现在我想阅读并突出显示文本。所以我拆分句子并开始循环。现在的问题是,在SAPI的同步调用说出句子的情况下,浏览器的每个其他按钮都停止工作。我无法暂停,恢复甚至退出软件。每个按钮都被绞死了。 如果我使用SAPI的异步调用,则不会发生此问题,但是突出显示文本将不起作用。所以,我需要坚持这个同步调用,并解决这个挂起问题。有没有人有任何解决方案!!!!!!!
for (int i = 0; i < splitSentences.Length; i++)
{
    highlight(splitSentences[i]);

    sound_object.Speak(splitSentences[i]);
}
请急需帮助。如何在说出句子的同时解决那些暂停,退出浏览器的按钮....     
已邀请:
我认为你应该在
HighLight
函数中使用Invoke。 例如,
void Do() //Must be start in another thread, not in main
{
    string [] splitSentences = new [] {"bye", "hello"};

    for (int i = 0; i < splitSentences.Length; i++)
    {
        HighLight(splitSentences[i], this);
        sound_object.Speak(splitSentences[i]);
    }
}

void HighLight(string str, Control webBrowser)
{
    if (this.InvokeRequired)
    {
        this.Invoke(new Action<string>(s, c => HighLight(s, c)));
    }

    // Highlight code here
}
    

要回复问题请先登录注册