c# - 后台对象的初始化

标签 c# .net winforms initialization

我需要初始化几个对象,这可能需要一段时间,所以我想在一些后台线程中进行。我还想显示 progressBar,显示初始化的进度。
最优雅的方法是什么?

我在考虑一个接口(interface):

interface ILoadable
{
    int Progress { get; }
    event EventHandler Loaded;
}

最佳答案

为什么不直接使用 BackgroundWorker直接地?它为 DoWorkProgressChangedRunWorkerCompleted 提供事件。

这个(或对此的薄包装)的优点是您可以自动正确地为您处理线程,并且它已经过很好的测试。

如果你想围绕这个做一个包装器,我实际上建议你自己做一个抽象类来封装 BackgroundWorker,并让你为运行操作提供 Action 委托(delegate)。

关于c# - 后台对象的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2601751/

相关文章:

c# - Windows 窗体 OpenFileDialog,如果对话框已经显示则阻止打开实例

c# - ProtoBuf 属性 ProtoMember 是否继承了 C# 中的标记值

.net - 使用 Coverlet 进行 Dotnet 单元测试 - 如何覆盖整个解决方案而不仅仅是一个项目

c# - 使用 winforms 给 excel 单元格上色

c# - 我需要为 ASP.NET 网站创建项目文件

c# - 寻找将 DotNetOpenAuth 与 WebAPI 结合使用的示例

c# - 如何规范化 int 值列表

ios - 使用 AVAudioPCMBuffer 将浮点值写入 C# 中的浮点指针数组(不安全或安全)

c# - 如何从其 Win32 句柄中获取 System.Windows.Form 实例?

c# - 修改鼠标十字准线代码使其位于表单顶部?