如何在类文件中使用BackGroundWorker?

2024-05-28

我的program.cs调用mdi父frmMain。 frmMain 然后根据用户操作打开不同的子表单。

所有的处理逻辑都写在BusinessLogic.cs中。 frmMain 在加载时调用 BusinessLogic.cs 的方法来初始填充数据。子表单也调用 BusinessLogic 来获取数据并对其进行处理。我想通过 BackGroundWorker 完成所有这些操作,即 frmMain 调用 BusinessLogic.cs 的 StartBGWorker() 方法,此方法为此特定调用创建一个后台工作程序,调用 Do_work 事件,执行获取和处理并关闭完成后。

我不知道如何为后台工作者创建实例和事件。那么我到底如何在类文件中使用backgroundworker呢?

编辑:也许我的逻辑是错误的,我应该向每个调用 BusinessLogig.cs 的表单添加一个 BGW。然后,每当我调用 BusinessLogic 的方法时,我都可以通过后台工作程序来执行此操作。这会是一个更好的实施吗?

Edit2:既然我找到了一种方法,我对我的怀疑感觉有点白痴。我刚刚在 BusinessLogic 中使用 BGW 的初始化代码创建了一个公共静态方法。现在,每当我需要进行处理时,我都会首先从表单中调用此方法。 我想知道我的 BGW 实现是否标准或者是否有任何方法可以改进设计。


Include:

using System.ComponentModel;

在你的类中定义它:

private BackgroundWorker BackgroundWorker = new BackgroundWorker();

初始化它:

BackgroundWorker.WorkerSupportsCancellation = false;
BackgroundWorker.WorkerReportsProgress = true;
BackgroundWorker.DoWork += BackgroundWorker_DoWork;
BackgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged;
BackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler( BackgroundWorker_RunWorkerCompleted );

启动它:

BackgroundWorker.RunWorkerAsync();

其用法与您从 Windows 窗体中了解到的完全相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在类文件中使用BackGroundWorker? 的相关文章

随机推荐