私のwpfアプリケーションでは、以下のようにボタンクリックにコードを追加しました:
private void btn_convert_Click(object sender, RoutedEventArgs e)
{
Thread t = new Thread(new ThreadStart(WorkerMethod));
t.SetApartmentState(ApartmentState.MTA);
t.IsBackground = true;
t.Start();
}
メソッド内WorkerMethod()
には、次のようなコードがあります。
btn_convert.Content = "Convert";
この行に到達すると、別のスレッドがこのオブジェクトを所有しているため、呼び出し元のスレッドがこのオブジェクトにアクセスできないため、例外がスローされます。
UI がフリーズするため、Dispatcher を使用したくありません。UI は応答する必要があるため、Dispatcher の呼び出しまたは BeginInvoke を選択していません。
貴重なご意見をお聞かせください。