我正在編寫一個WinForm組件,我在其中啓動一個Task來執行實際處理並在延續中捕獲異常。從那裏我想在UI元素上顯示異常消息。如何在WinForm組件的UI線程上調用?
Task myTask = Task.Factory.StartNew (() => SomeMethod(someArgs));
myTask.ContinueWith (antecedant => uiTextBox.Text = antecedant.Exception.Message,
TaskContinuationOptions.OnlyOnFaulted);
現在我得到一個跨線程異常,因爲任務試圖從顯然非UI線程更新UI元素。
但是,Component類中沒有定義Invoke或BeginInvoke。
如何從這裏開始?
UPDATE
而且,請注意,調用/的BeginInvoke/InvokeRequired不能從我的組件的派生類,因爲組件不爲他們提供。
太棒了!它完美的工作!非常感謝你! – 2010-10-25 20:36:02