前一段时间已经发现CF在载入资源的时候会怪怪的,但是这一段时间都不曾记起要对这个问题研究一下。最近又发现这个问题了,实在是恼火。俗话说择日不如撞日(粤语),唉,就今天啦。这个问题是在VS2k5里面调试的时候才发现的,以前在VS2k3里面一直都不知道有这么一个问题存在。事情是这样的:

有一次在VS2k5里面调试运行一个SmartPhone的程序的时候,发现突然在Output窗口里面显示了好几个First Chance Exception,仔细一看发现有两个FileNotFoundException,以及一大堆的UnathorizedException。而这些异常却没有引起中断,也就是说在程序的某一个部分被try...catch截获了。但问题是我的代码里面根本就没有任何的try...catch,不应该呀?后来仔细想想,又想到using也截获异常,所以一下子下不了定论。而我这个程序只有关于画图方面的代码,因此问题应该在画图相关的部分。我立刻想到有两种可能性,第一种是加载资源的时候引起了异常,另外一种可能是画图代码由一些可能引起异常、但是系统能够处理的参数。由于没有时间,开始的时候就没有仔细探索,反正能够正常使用。

而昨天呢,我稍微研究了一下,发现问题确实是出在加载资源的部分。当你的SmartDevice程序里面包含了图片资源的话,并且通过资源管理器的GetObject获取这项资源的话,就会在内部引发一系列的异常——第一次引发两个,第二次引发另外两个,后面的就每次引发一个异常。简单的跟踪发现,问题可能出在本地化方面的问题。似乎在GetObject的控制流当中的某一个环节,会检查你指定的“文化(CultureInfo,不知道中文术语是否这么讲)”,然后找到相应的资源文件载入。这个资源文件是干什么的我没有仔细看,这只是一个粗略的分析,估计是用来显示出错信息的。由于没有指定CultureInfo,或者指定CultureInfo的资源文件没有被安装上来,结果就引发了FileNotFoundException了。至于后面的UnauthorizedException,我估计就是一开始引发了FileNotFound之后,某些初始化步骤出现问题的副作用引起的。

这个问题也许值得花时间去了解清楚。大家都知道抛出一个Exception,无论代码有没有catch,时间开销都是相当大的。可以说如果你的程序有图片资源,其启动速度就会跟没有图片资源的相差非常大。大家可以试一下建立一个空白的程序,运行一下感受速度。然后在这个项目的Form上面添加3个PictureBox,设置它们的Image属性,分别换上不同的图片。再次运行的时候就会感到速度会有差异了(应该还好,不算很明显。)如果在VS2k5里面做这个实验就再好不过了,因为能够在Output窗口上面看到很明显的First chance exception项目的。这个CF如果跟桌面的.NET Frameword对比,真算不上是精品工程,越用就越多问题。

呵呵,不知道现在VS2k5的beta里面是否有中文的Rom了呢?如果没有的话,下一次来看我的解决方案,今天不在工作机器上面,很多东西没法写,怕不准确害死人。OK,今天就这些。

CF里面的资源载入问题相关推荐

  1. pythonlive2d_Unity-Live2D资源载入

    在Live2d上下载的资源模型是.cmox格式的,无法直接在unity内使用,需要在Cubism中导出成.moc文件. 1.将下载的.cmox资源直接拖入Cubism 2.导出的时候有2.0版本和3. ...

  2. Unity Accelerator本地服务器加速Unity项目资源载入速度

    去年的时候项目引擎版本由2019升级为2020,对应的资源导入管线也由V1切换到了V2,在这个过程中发现原来的cachesever就不满足项目需要了,查阅了一些资料发现unity的cachesever ...

  3. Java中用ClassLoader载入各种资源(类、文件、web资源)的方法

    ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. ClassLoader负责载入 ...

  4. java web 加载类_Java中用ClassLoader载入各种资源(类、文件、web资源)的方法

    lassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. ClassLoader负责载入系 ...

  5. [Unity3d]制作打包并载入AssetBundle

    通常在游戏执行过程中,并不希望一次将全部的资源都载入.而是在资源被使用的时候载入,以免占用过多的存储空间.所以我们可能会尽量规划好不同功能的场景,在需要的时候才载入场景并释放掉前个场景中不需要的资源. ...

  6. combotree 可以异步加载吗_Unity AssetBundle 资源打包,加载,本地缓存方式,安卓,PC本地加载路径问题...

    AssetBundle的定义和作用: 1,AssetBundle是一个压缩包包含模型.贴图.预制体.声音.甚至整个场景,可以在游戏运行的时候被加载. 2,AssetBundle自身保存着互相的依赖关系 ...

  7. 实现Android 动态载入APK(Fragment or Activity实现)

    尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38565345 近期由于项目太大了.导致编译通只是(Android对一个应用中的方法个数貌似有 ...

  8. 资源打包Assetbundle .

    在手游的运营过程中,更新资源是比不可少的.资源管理第一步是资源打包.传统的打包可以将所有物件制成预设Prefab,打包成场景.今天我们来一起学习官方推荐的Assetbundle,它是Unity(Pro ...

  9. Unity资源打包之Assetbundle

    本文原创版权归 csdn janeky 所有,转载请详细注明原创作者及出处,以示尊重! 作者:janeky 原文:http://blog.csdn.net/janeky/article/details ...

最新文章

  1. 重做53. Maximum Subarray
  2. 感知重塑与忠诚建立:车企营销的两大新机遇
  3. centos7安装face_recognition踩各种坑
  4. 16小时31分12秒!2019天猫双11成交额超2135亿元,超越2018年全天成交额
  5. WIN7英文操作系统,中文语言包安装。及部分开发环境,软件中文乱码问题解决。
  6. 《The Pragmatic Programer》 reading notes
  7. ENVI监督分类错误:分离度为0.00000解决办法
  8. Cannot save setting
  9. NIOS II 15:AD7606共享SDRAM
  10. 实际应用1:分析各类APP的下载量(pyecharts数据可视化)
  11. 腾达a9服务器无响应,腾达(Tenda)A9设置网站打不开怎么办?
  12. 头歌-EduCoder:袋鼠过河问题
  13. Android 10.0 Launcher3 单层app列表页排序功能实现
  14. JavaScript Prototypes 原型 Lynda课程中文字幕
  15. python 乘法运算定律_乘法运算定律专项练习题
  16. 4.6. 个人防火墙
  17. Python语言在地球科学领域中的应用
  18. 电子商务作业2:电子支付工具
  19. 1小时入门Python
  20. 苹果手机怎么在照片上添加文字_怎么把照片上的文字转换成文本?照片转换文字神器来了...

热门文章

  1. ApacheCommons的Java公共类库(实现如Log这些功能)
  2. 一个考察函数基础知识的题
  3. 手机验证码倒记时函数
  4. 简单描述ListView中使用GestureDetector冲突的解决办法
  5. 2011百度之星初赛B圆环
  6. 前Citrix CTO认为虚拟化将解决现有的安全问题
  7. 一张膜能把电信运营商挡在手机支付门外吗?
  8. 5-510寝室课后习题4.35
  9. ECMAScript 6 Features 中文版
  10. Tomcat unable to start within 45 seconds.