私はマルチスレッドにまったく慣れていませんが、今日、この奇妙な問題に遭遇しました。私はいくつかのオンラインチュートリアルに従いましたが、私がしていることは正しいように思えました。
だから私はこのコードを手に入れました:
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()メソッドが呼び出されていないようです。何が問題なのかわからないので、助けていただければ幸いです。ありがとう :)