关于Silverlight动态加载的疑问
2011-04-27 18:14
218 查看
最近在搞sl的项目,正好用到动态加载,就找了一下。发现网上基本上都是用webClient下载,之后异步加载。
当然了SL只能异步加载,但是我使用了压力测试的情况下发现,事情没有这么简单。
首先MSDN上明确指定这个异步加载的方式,[b]在不阻止调用线程的情况下.[/b]
之后好玩的事出来了,首先是在webclient下载前线程为1
之后到了infoDownloader_Completed时,线程数变了,改为7
重点来了,这时new AssemblyPart报错了,
错误信息如下:
虽然这个问题,我还没有解决,但希望在此提醒大家,异步加载的风险。
好了,最后拜托大家帮我想个解决方案,不吝赐教!!
当然了SL只能异步加载,但是我使用了压力测试的情况下发现,事情没有这么简单。
首先MSDN上明确指定这个异步加载的方式,[b]在不阻止调用线程的情况下.[/b]
之后好玩的事出来了,首先是在webclient下载前线程为1
WebClient wc = new WebClient(); wc.OpenReadCompleted += infoDownloader_Completed; wc.OpenReadAsync(new Uri(msg.NameSpace, UriKind.Relative));
之后到了infoDownloader_Completed时,线程数变了,改为7
重点来了,这时new AssemblyPart报错了,
void infoDownloader_Completed(object sender, OpenReadCompletedEventArgs e) { try { if (e.Error == null) { AssemblyPart _part = new AssemblyPart(); Assembly assembly = _part.Load(e.Result); //导入程序集名称 Type cls = assembly.GetType(_msg.ClassName, true);
错误信息如下:
{System.UnauthorizedAccessException: 跨线程访问无效。 位于 MS.Internal.XcpImports.CheckThread() 位于 System.Windows.DependencyObject..ctor(UInt32 nativeTypeIndex, IntPtr constructDO) 位于 System.Windows.AssemblyPart..ctor() 位于 ClientSocket.InvokeReflection.infoDownloader_Completed(Object sender, DownloaderEventArgs e)}
虽然这个问题,我还没有解决,但希望在此提醒大家,异步加载的风险。
好了,最后拜托大家帮我想个解决方案,不吝赐教!!
相关文章推荐
- [Silverlight入门系列]Prism中TreeView真正实现MVVM模式和Expanded发生时异步动态加载子节点(WCFRiaService)
- 动态加载Silverlight应用的dll文件(可实现插件功能)(转)
- 关于NGUI的动态加载后的刷新显示问题,解决办法!!
- 关于Unity3D中Resources动态加载NGUI图片的方法!!!
- 关于C#中动态加载AppDomain的问题
- 关于ASP.NET动态加载控件的几点实用总结
- 31.Silverlight中WebClient+StreamResourceInfo+反射实现动态加载外部XAP程序
- 关于Asp.net 页面动态加载用户控件,出现“未能加载视图状态”的原因
- ios中关于动态加载判断这种特殊需求的应用
- 关于Silverlight的AutoCompleteBox类的加载问题!
- 如何拆分SilverLight应用程序以适应MEF动态加载XAP
- Silverlight动态加载技术
- 关于动态加载的数据实现单选可取消的效果 并且附带 ScrollView滑动到指定位置
- 关于设置SQLPLUS提示符样式的方法----登陆配置文件,动态加载提示符
- 关于jQuery动态加载元素之后绑定事件无法触发的问题
- 关于C#中动态加载AppDomain的问题
- 也说说Silverlight动态加载DLL(转)
- 关于Swift使用UITabelView动态加载Cell(NSClassFromString使用问题)
- 关于Unity3D中Resources动态加载NGUI图片的方法
- silverlight中动态加载多个资源文件