出現這種錯誤,代表我們需要跨執行緒讀取UI
如果使用WindowsForm開發,最簡單的方式是加入
Form.CheckForIllegalCrossThreadCalls = False
MSDN上有這段備註 : 將 CheckForIllegalCrossThreadCalls 設定為 true,可以在偵錯時更容易找到並診斷這種執行緒活動。請注意,如果在偵錯工具之外啟動應用程式,不當的跨執行緒呼叫總是會引發例外狀況。
也可建立委派或是使用BackgroundWorker
//這邊我使用下面方法,方法內直接將要讀取的UI控制項寫在裡面
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
//UIThread 變數
});
參考資料:
全站熱搜
留言列表