WPF,MVVM:如何处理繁重(慢)初始化

时间:2013-06-17 13:45:00

标签: wpf multithreading mvvm constructor initialization

在我的viewmodels中,我通常需要从数据库中获取数据或检查一些端口和连接以访问某些硬件,这需要大约3-10秒。

如果我将初始化放到我的VM构造函数中,那么UI将会冻结。我不想要那个当然。我可以生成一个新线程并在那里进行初始化,但这会带来实现和同步开销,因为我需要在许多VM中执行此操作。这样的VM ctor看起来像这样:

public PrinterConfigurationVM()
{
    ScanPrintersOnCOM(); // Scans COM ports and identifies if it is a printer, slow
    ScanPrintersOnUSB(); // Scans USB printers, fast
    FetchPrinterConfigurations(); // Access to db, not so slow
}

是否已经有一个简单的解决方案(模式或一些lib)?你的建议是什么?

系统:.NET 4.0,WPF,MVVM Light

0 个答案:

没有答案