我有一个用于长时间运行操作的作业对象,其工作方式如下:
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 应用程序),并且按钮单击事件触发。它只是不会触发的后台线程方法。这里会发生什么?