我正在尝试在我的程序中实现后台工作程序,以便在我运行程序并开始检索我需要的数据时它不会冻结。
我不太确定后台工作人员是如何工作的。
后台工作者是在后台运行的线程,并且在不中断/阻塞主线程的情况下工作。
你可以在这里阅读更多。
简而言之:
在 DoWork 中执行阻塞操作。只要有可能,使用(sender as BackgroundWorker).ReportProgress(50);
例如报告 50% 的完成度来报告您的操作完成的程度。
您可以让您的主线程订阅“ProgressChanged”事件,该事件可以更新 GUI 或执行进度更改时应该发生的其他任务。