我有个winfrom程序最近应需求改成中英文版,改完成之后程序就很奇怪的变慢了。我的多语言做法是,有窗体启用多语言,默认的是zh-cn,有en选项。硬代码部分,新建一个空类,读取这些空类的里字符串资源。硬代码部分这样做是因为每次有对窗体修改,IDE自动重写了窗体的资源文件,自定义的硬代码就没了。测试运行时发现程序比以前慢了不少。
例如,程序里的串口通讯类,实现的是接收设备发送过来的数据并显示。使用多语言程序之前的dll速度正常,使用多语言设计的dll就显示上来看至少慢了1.5-2秒左右。
不知道这样的问题改怎样处理,请指导下。万分感谢。

解决方案 »

  1.   

    使用QT进行国际化语言版本的开发時,可以通過使用tr()函数。winform 估計應該有 類似的實現方法。 
      

  2.   

    C#多国语言的实现大多是依赖资源文件,没有迹象表明这个方案会很慢,你为什么要放着成熟的方案不用而自己发明一套山寨的做法?如果不知道怎么用资源文件实现多国语言,你可以查查资料,codeproject上面这一类的代码多得是。
      

  3.   

    感谢您的回复,我使用的就是MS的标准多国语言设计方案(资源文件),只是在窗体里有些msg硬编码部分(窗体添加组件或移动组件时IDE会重写资源文件,自定义的string会没有),考虑到维护问题在使用的新建类来处理自定义string的。
      

  4.   

    通过对代码的分析,发现了问题的所在,由于我接收串口数据的部分频率很高,部分代码存在每秒近15-20次的调用,而那段代码里读取资源文件的部分。把需读取资源文件的部分定位为变量,在初始化时读取好。高频率执行部分不再读取。从而解决该问题。to caozhy:VS自带的度量工具是那个?还没搞明白,期待您的指导,谢谢。