在后台初始化对象

时间:2010-04-08 16:38:08

标签: c# .net winforms initialization

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

我正在考虑一个界面:

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

1 个答案:

答案 0 :(得分:8)

为什么不直接使用BackgroundWorker?它为DoWorkProgressChangedRunWorkerCompleted提供了活动。

这个(或者是一个薄的包装器)的优点是你可以自动为你自动处理线程,并且它经过了很好的测试。

如果你想创建一个包装器,我实际上建议你自己创建一个封装BackgroundWorker的抽象类,并允许你为运行操作提供Action个委托。