WPFでUIスレッドとは別のスレッドからUIを変更するときの作法。いつもやりかた忘れるのでメモ。formの場合のInvokeRequiredとinvokeに当たる。状況に応じてInvokeをBeginInvokeで非同期にするのもあり。VSでCheckAccessが入力補完対象にならないのはなぜだろう。
1 2 3 4 5 6 7 8 9 |
if (mycontrol.Dispatcher.CheckAccess()) { mycontrol.Content = "test"; } else { mycontrol.Dispatcher.Invoke((Action)(() => { mycontrol.Content = "test"; })); } |