我需要初始化几个对象,这可能需要一段时间,所以我想在一些后台线程中进行。我还想显示 progressBar,显示初始化的进度。
最优雅的方法是什么?
我在考虑一个接口(interface):
interface ILoadable
{
int Progress { get; }
event EventHandler Loaded;
}
最佳答案
为什么不直接使用 BackgroundWorker直接地?它为 DoWork
、ProgressChanged
和 RunWorkerCompleted
提供事件。
这个(或对此的薄包装)的优点是您可以自动正确地为您处理线程,并且它已经过很好的测试。
如果你想围绕这个做一个包装器,我实际上建议你自己做一个抽象类来封装 BackgroundWorker,并让你为运行操作提供 Action
委托(delegate)。
关于c# - 后台对象的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2601751/