silverlight MEF 加载速度优化

本文探讨了在配置较低的电脑上使用MEF注入+MVVM方式加载Silverlight页面时遇到的速度问题,并提出通过线程池的方式优化此过程。通过在安装机器上显示每步时间来定位问题所在,最终实现页面装载与注入的异步执行。

最近在搞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) 。欢迎大家多多拍砖

转载于:https://www.cnblogs.com/shuibin/archive/2012/08/21/2649382.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值