我对多线程很陌生,今天我遇到了这个奇怪的问题。我遵循了一些在线教程,在我看来,我所做的是正确的。
所以我得到了这个代码:
GrammarThreading gThread = new GrammarThreading(this, grammar);
Thread thread = new Thread(new ThreadStart(gThread.threadUnloadGrammar));
有了它,我想将语法卸载移动到另一个线程,因为它需要几秒钟。这就是 GrammarThreading 类的样子:
public class GrammarThreading
{
public MainWindow window { get; set; }
public Grammar grammar { get; set; }
public GrammarThreading(MainWindow _window, Grammar _grammar)
{
window = _window;
grammar = _grammar;
}
public void threadUnloadGrammar()
{
window._recognizer.UnloadGrammar(grammar);
}
}
但是,我调试了代码,threadUnloadGrammar() 方法似乎永远不会被调用。我不知道问题出在哪里,因此将不胜感激任何帮助。谢谢 :)