出現這種錯誤,代表我們需要跨執行緒讀取UI

如果使用WindowsForm開發,最簡單的方式是加入

Form.CheckForIllegalCrossThreadCalls = False

MSDN上有這段備註 : 將 CheckForIllegalCrossThreadCalls 設定為 true,可以在偵錯時更容易找到並診斷這種執行緒活動。請注意,如果在偵錯工具之外啟動應用程式,不當的跨執行緒呼叫總是會引發例外狀況。


也可建立委派或是使用BackgroundWorker


//這邊我使用下面方法,方法內直接將要讀取的UI控制項寫在裡面

this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
     {
     //UIThread 變數
     });

參考資料:

余小章@大內殿堂

程式設計俱樂部



arrow
arrow
    全站熱搜

    東勢厝滴yang 發表在 痞客邦 留言(0) 人氣()