我有長時間運行的操作的工作對象是這樣工作的:爲什麼BackgroundWorker.OnDoWork不被調用?
Class LongRunningJob
Inherits BackgroundWorker
Protected Overrides Sub OnDoWork(ByVal e As System.ComponentModel.DoWorkEventArgs)
'do long running job here
End Sub
End Class
我調用這個像這樣:
Dim job As New LongRunningJob
'run it
job.RunWorkerAsync()
這一年多以前工作得很好,我轉移到其他的東西。我今天不得不返回到這個代碼,當我現在運行它時,OnDoWork
覆蓋不會被調用。在那裏沒有中斷點,調試消息沒有被寫入,該方法根本不被調用,並且在任何地方都不會引發錯誤。
我想不出會發生什麼變化,可能會導致這種情況,因爲它看起來像一個低層框架的事情。應用程序的其餘部分加載並運行正常,主窗口顯示(這是一個WPF應用程序),並且按鈕單擊事件觸發。這只是後臺線程方法,不會觸發。這裏會發生什麼?
很難回答,但沒有看到所有的實際代碼。 – 2012-04-10 23:37:22
順便說一句,你使用源代碼修訂控制系統嗎? – 2012-04-10 23:55:02
@MitchWheat:看到它也很難回答,因爲這是一個很大的項目。我不確定我可以分離出什麼來解決問題,整個事情會讓人們看太多。回覆:源代碼,是的,我想我可以回到上一個工作代碼,儘管我真的沒有觸及它,所以我懷疑問題是環境問題。 – 2012-04-11 00:07:25