2016年7月20日 星期三

【C#】The calling thread must be STA, because many UI components require this

在某 Timer 重試過程中會改到 UI (精確的說是會叫一個 MsgBox)結果碰到
發出呼叫的執行緒必須是 STA,因為許多 UI 元件都這樣要求
的錯誤。

字面上看起來就是常見的他緒不得修改主緒 UI 的問題,查過之後 WPF 鞍回主緒是用 Dispatcher.Invoke,可是查到的不是都能跑,害我一度以為自己是不是弄錯命題,可以 run 的如下
Application.Current.Dispatcher.Invoke(()=>{
    // UI modify
});

ref: SOF

沒有留言:

張貼留言