0

我刚刚开始了一个类似的线程,但我觉得这是一个单独的问题,所以就这样吧!

我正在使用 BackgroundWorker 来防止我的 UI 在执行许多文件操作时锁定。虽然这已经解决了问题,但它创建了另一个,因为调用 BackgroundWorker 的函数需要根据 BackgroundWorker 的结果返回真/假。

显然,有一些方法可以解决这个问题 - 使用循环来检查工作人员是否忙,但这似乎是一种特别混乱的做事方式。我对此做了一些进一步的阅读,很多人说如果我需要等到 BackgroundWorker 完成,我一开始就违背了使用它的目的。

我在这里有什么选择?是否有一种“正确”的方式在函数中使用 BackgroundWorker 并且仍然让它根据 BackgroundWorker 正在执行的工作的结果报告返回值,或者是否有一种更简单的方法可以让我的 UI 在其他事情发生时保持响应上?

4

1 回答 1

-1

BackgroundWorker.WorkerReportsProgress = True在启动 BackgroundWorker 时设置。

调用BackgroundWorker.ReportProgress你的DoWork方法,并BackgroundWorker.ProgressChanged在你的主线程中处理事件。

于 2013-06-27T05:53:25.723 回答