2013-12-03 171 views
1

我有一個vb.net桌面應用程序,我在那裏使用thread.Abort()。避免system.threading.threadabortexception錯誤

我得到system.threading.threadabortexception錯誤。

以下是我收到的錯誤消息框,但不是每次。 未處理的異常發生在您的應用程序中。如果您點擊 繼續..... 線程正在中止。

請建議如何避免此錯誤消息。

回答

4

請建議如何避免此錯誤消息。

避免這種情況的最佳方法是不要撥打Thread.Abort()。一般來說,Thread.Abort()確實是一個糟糕的主意。相反,你應該圍繞框架中構建的cooperative cancellation model構建你的例程。

+0

我明白裏德,但我只在我的應用程序中的一個地方使用了Thread.Abort。而且錯誤信息也很少出現。有沒有更簡單的方法,或者如果我刪除thread.abort會發生什麼? – user3060430

+0

@ user3060430 ThreadAbortException基本上意味着「線程被中止」 - 如果調用Thread.Abort,則需要預期這一點。處理它的正確方法是在你的應用程序中修復一個地方,你正在做一些不合適的事情...... –

+0

我只是在窗體的關閉事件中中止正在運行的線程。我不認爲這是必要的。下面是代碼:Private Sub frmFWCore_FormClosed(BYVAL eventSender作爲System.Object的,BYVAL EventArgs的作爲System.Windows.Forms.FormClosedEventArgs)處理Me.FormClosed \t嘗試 t.Abort() 抓住EX作爲例外 LogTraceInfo(」 CitiCSI - FWCORE_frm - FormClosed - 錯誤信息:」 ex.Message) 結束Try \t \t末次 – user3060430