我是如何處理的異常略有困惑。後臺工作異常處理
我有一個運行需要長時間運行的過程中後臺工作線程。我的理解是,如果後臺工作線程發生異常,代碼仍然會以RunWorkerCompleted方法結束。
void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
throw e.Error;
如果是這種情況,圍繞bgWorker.RunWorkerAsync()放置一個try catch塊會有什麼意義。打電話,我假設不是?
我想重新拋出被夾在RunWorkerCompleted方法之外,我怎麼能做到這一點,而不會丟失堆棧跟蹤 - 就是我上面是否正確?我在重新拋出一個異常時讀到了你,你應該使用「throw」?
,所以我不會需要在我的RunWorkerCompleted方法中做任何錯誤處理?或者更好的做法是處理RunWorkerCompleted方法中的任何錯誤? – mHelpMe
如果您在工作線程中處理異常,您將無法在RunWorkerCompleted中獲得該異常,並且如果您在DoWork中未處理該異常,那麼如果您執行了錯誤操作,應用程序可能會崩潰 –