silverlight MEF 加载速度优化

最近在搞silverlight 的页面加载时的速度问题,由于要运行在配置很差的电脑上,所以实在让人头大啊。页面用到的是MEF注入+MVVM的方式加载的。所以速度很慢,最后通过在安装机器上显示每步的时间终于查出病症了。http://www.ywrj.net/a/NET/SL_WPF/20120821/11510.html

下面代码说明下:

public ManageMember() {
CompositionInitializer.SatisfyImports(this);//注入
InitializeComponent();//装载页面
}

一般的MEF的xaml.cs里都是这样写的,通过时间显示得出,注入这步CompositionInitializer.SatisfyImports(this);是非常耗时间的(主要是指配置低的电脑)而言,这个时候只有先装载页面再注入了,我只能想到这个办法,也请大牛指点一二。所以想到了用线程池的方式。

public ManageMember() {

InitializeComponent();//装载页面

ThreadPool.QueueUserWorkItem((threadState) =>
{
Thread.Sleep(400);//这里的时间根据你的机器的响应时间了,要等到装载页面完成后才能执行下面的,不然会很卡哦
Dispatcher.BeginInvoke(() =>
CompositionInitializer.SatisfyImports(this));
});

}

//上面这些操作就不多解释了,可以上网在看看ThreadPool.QueueUserWorkItem((threadState) 。欢迎大家多多拍砖

posted on 2012-08-21 17:01  俄罗斯水手  阅读(328)  评论(0编辑  收藏  举报

导航