我在一个Prism应用程序中有许多模块,它加载从服务获得的数据,需要花费3-8秒。
我希望能够在我的引导程序中这样说:
伪码:
Customers allCustomers = Preloader(Models.GetAllCustomers);
这将在后台线程中运行,当用户实际需要变量"allCustomers“时,它将被完全加载。
在棱镜/统一系统中是否有这种预压的自动服务?
发布于 2009-07-28 17:50:18
不,没有。
然而..。
您可以考虑的是将带有ViewModel的ContainerControlledLifetime添加到视图可以使用的ConfigureContainer方法中的容器中。您可以在ViewModel的构造函数中启动线程请求,并允许视图将这个ViewModel从容器中提取出来。
即使在触发ViewModel方法之前从容器中获取GetAllCustomers,如果您将客户存储在INotifyPropertyChanged中的属性正确地实现了INotifyPropertyChanged,也会正确地通知他们。
如果它更合适,您也可以通过Modules (在Initialize方法中),而不是在引导程序(例如,您的模块实际上了解您的客户模型)中完成这一操作。
https://stackoverflow.com/questions/1192508
复制相似问题