C#多国语言设计导致程序变慢问,请问该如何解决。

zbking 2012-07-07 06:14:01
我有个winfrom程序最近应需求改成中英文版,改完成之后程序就很奇怪的变慢了。我的多语言做法是,有窗体启用多语言,默认的是zh-cn,有en选项。硬代码部分,新建一个空类,读取这些空类的里字符串资源。硬代码部分这样做是因为每次有对窗体修改,IDE自动重写了窗体的资源文件,自定义的硬代码就没了。测试运行时发现程序比以前慢了不少。
例如,程序里的串口通讯类,实现的是接收设备发送过来的数据并显示。使用多语言程序之前的dll速度正常,使用多语言设计的dll就显示上来看至少慢了1.5-2秒左右。
不知道这样的问题改怎样处理,请指导下。万分感谢。
...全文
173 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
YapingXin 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
通过对代码的分析,发现了问题的所在,由于我接收串口数据的部分频率很高,部分代码存在每秒近15-20次的调用,而那段代码里读取资源文件的部分。把需读取资源文件的部分定位为变量,在初始化时读取好。高频率执行部分不再读取。从而解决该问题。
[/Quote]

很好的案例。
zbking 2012-07-09
  • 打赏
  • 举报
回复
通过对代码的分析,发现了问题的所在,由于我接收串口数据的部分频率很高,部分代码存在每秒近15-20次的调用,而那段代码里读取资源文件的部分。把需读取资源文件的部分定位为变量,在初始化时读取好。高频率执行部分不再读取。从而解决该问题。

to caozhy:VS自带的度量工具是那个?还没搞明白,期待您的指导,谢谢。
zbking 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

你应该学会用VS自带的度量工具查找程序的热区。
[/Quote]
感谢您的回复,VS自带的量度工具,是那个?感谢你的再次指导。
zbking 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

C#多国语言的实现大多是依赖资源文件,没有迹象表明这个方案会很慢,你为什么要放着成熟的方案不用而自己发明一套山寨的做法?如果不知道怎么用资源文件实现多国语言,你可以查查资料,codeproject上面这一类的代码多得是。
[/Quote]
感谢您的回复,我使用的就是MS的标准多国语言设计方案(资源文件),只是在窗体里有些msg硬编码部分(窗体添加组件或移动组件时IDE会重写资源文件,自定义的string会没有),考虑到维护问题在使用的新建类来处理自定义string的。
threenewbee 2012-07-07
  • 打赏
  • 举报
回复
你应该学会用VS自带的度量工具查找程序的热区。
YapingXin 2012-07-07
  • 打赏
  • 举报
回复
C#多国语言的实现大多是依赖资源文件,没有迹象表明这个方案会很慢,你为什么要放着成熟的方案不用而自己发明一套山寨的做法?如果不知道怎么用资源文件实现多国语言,你可以查查资料,codeproject上面这一类的代码多得是。

maidou_6 2012-07-07
  • 打赏
  • 举报
回复
“硬代码部分,新建一个空类,读取这些空类的里字符串资源。”

有代碼 示意 下,才好分析呀。
zbking 2012-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

使用QT进行国际化语言版本的开发時,可以通過使用tr()函数。

winform 估計應該有 類似的實現方法。
[/Quote]
谢谢您的回复,我的问题是为什么程序会慢?改如何优化消除变慢的因素。
maidou_6 2012-07-07
  • 打赏
  • 举报
回复
使用QT进行国际化语言版本的开发時,可以通過使用tr()函数。

winform 估計應該有 類似的實現方法。

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧