gpt4 book ai didi

c# - 如果报告进度,BackgroundWorker 会崩溃

转载 作者:行者123 更新时间:2023-11-30 21:04:44 25 4
gpt4 key购买 nike

我有一个调用类中方法的 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() );,原因是“调用的目标已抛出异常。”

如果我不报告进度,一切正常。有谁知道为什么?我的猜测是这与线程有关,但我不知道如何。

最佳答案

一些建议:

1.) 检查 InnerException property TargetInvocationException 异常。

2.) 将 Visual Studio 配置为在抛出异常时立即停止:

enter image description here

这应该有助于更接近错误。

关于c# - 如果报告进度,BackgroundWorker 会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com