2010-12-09 39 views
1

我需要在DoWork期間捕獲錯誤,並且如果錯誤屬於某種類型,請重新運行相同的BachgroundWorker。已經嘗試取消它,並在Completed事件期間致電RunWorkerAsync(),但沒有運氣(例外情況出現,表示我的背景工作者對象已被取消)。如何重新運行BackgroundWorker

+0

不會處理backgroundworker裏面的錯誤DoWork更有意義嗎? – 2010-12-09 10:36:07

+0

我做它的處理,但它繼續完成事件處理程序無論如何...可能是GOTO的方式? – 0x49D1 2010-12-09 10:41:47

回答

3

我猜測Bgw仍然處於Error/Canceled狀態,直到Completed事件完成。

有幾個選項:

  • 重啓內部DoWork的邏輯
  • 開始從已完成的事件的另一 BGW。

Bgw本身並不昂貴,因此重用特定實例沒有多大意義。線程來自ThreadPool。

相關問題