我有一个调用类中的方法的 BackgroundWorker。该方法被赋予对 BackgroundWorker 的引用,以便它可以报告其进度。此伪代码显示了大纲:
void BackgroundWorker_DoWork( object sender )
{
BackgroundWorker w = sender as BackgroundWorker;
var c = new ProcessingClass()
c.someMethod( w )
}
class ProcessingClass()
{
someMethod( BackgroundWorker w )
{
w.ReportProgress(50)
//calculations...
}
}
问题是在报告进度后进行“计算”时,程序会崩溃。调试器跳转到Application.Run( new frmMain() );
启动“程序”类,原因是“异常已被调用的目标抛出”。
如果我不报告进度,一切正常。有谁知道为什么?我的猜测是这与线程有关,但我不知道如何。