3
處理我開始一個長期運行的任務這樣的:在特定線程調用方法,而在另一個線程
task = Task.Factory.StartNew(LongRunningMethod, TaskCreationOptions.LongRunning);
在LongRunningMethod我打電話這是引發事件的第三方方法。這事件包含了我需要添加到我的數據表中的數據:
dataTable.Rows.Add(e.Data);
麻煩的是,該的dataTable可以與一些認爲需要調用調用方法有關,但我不希望添加任何對接口的引用,實現調用類似的方法。
我願做這樣的事情:
originalThread.Invoke(() => dataTable.Rows.Add(e.Data));
什麼是實現這一目標的最佳選擇嗎?
什麼樣的應用(的WinForms,WPF,...)? – 2013-03-12 10:18:00
@HenkHolterman:任何類型的表示層應該能夠連接到我的數據源(這裏是_dataTable_),但如果行將被添加到不同的線程中,其中一些會引發異常。那就是問題所在。 – 2013-03-12 10:21:42
你不能「闖入一個線程」,你只能將一個方法推送(調用)到一個消息隊列,例如WPF Dispatcher或WinForms應用程序。你將需要一個幫手類。 – 2013-03-12 10:24:13