对Text控件增量赋值的代码优化

转载 2007年10月12日 09:23:00
对Text控件增量赋值的代码优化

在开发一个小程序的时候,遇到一个需求,就是要把指定的文本内容打开,逐行判断、组装后再显示在Text控件中。
起初,笔者使用
while(streamreader.Peek()>0)
{
    ...
    textBox1.Text += strline;
}
streamreader.close();
在运行的过程中无错误,可是在装载数据的时候效率低下,装载1000行的记录居然需要15秒左右,大大的影响了使用。
在调试过程中,笔者发现,streamreader.Open函数调用并不怎么需要耗时,而循环读完这1000行数据的耗时也不到1秒,因此,把耗时的操作锁定在textBox1.Text+=strline上,猜想,可能是textBox1.Text在声明时分配了一定的内存,在每次赋值的过程中可能又需要重新分配内存,因textBox1控件所占空间比较大,因此重新分配内存占用了大部分的时间。
为了证实这个猜想,笔者把程序修改为:
string strData="";
while(streamreader.Peek()>0)
{
  ...
  strData+= strline;
}
textBox1.Text=strData;
streamreader.close();
经调试运行,在加载1000行记录的数据文件仅需要1秒钟左右的时间。
这个案例说明,对控件、类属性需要增量赋值时,最好先赋值到一个变量,然后再将变量的值赋给控件、类属性,以避免因为频繁修改控件、类属性而频繁修改内存而导致效率低下。

 

MVC的控件写法,及赋值 【重要】

" %> HttpHelper --...
  • Fanbin168
  • Fanbin168
  • 2014年08月26日 16:20
  • 4711

野人学Android基础篇之初探UI控件第一课--TextView动态赋值

除了上节课中讲到的TextView静态赋值,还有一种更加灵活的赋值方法–动态赋值。在app的运行过程中,根据程序的需要可以随时改变TextView的值。其实现的基本逻辑可以归纳如下: 1.通过id获...
  • qingxinyeren
  • qingxinyeren
  • 2015年08月24日 21:28
  • 2848

Android中EditText控件的几种使用方法

转自: http://blog.csdn.net/ahuier/article/details/8982516 EditText是除了TextView控件之外的属性,还可以实现输...
  • yuxiaohui78
  • yuxiaohui78
  • 2014年03月03日 06:59
  • 15093

从地图类型切换控件谈JS代码优化

本文以 JavaScript 开发自定义百度地图类型切换控件为主线,记录了控件从实现到一步步优化过程中的思考与总结,其中不少关于 JavaScript 代码优化的 tip 在很多场合都很实用。主要知识...
  • knightaoko
  • knightaoko
  • 2017年11月28日 23:56
  • 47

iOS部分-UI基础控件 - 01天 入门 第12课 代码优化

讲到 1.Xcode的bug  2.实现代码优化  3.switch中的魔法数字(如何避免)枚举 常量的魔法数字 宏 1.Xcode的bug 复制项目的时候,修改复制文本...
  • liyuhong165
  • liyuhong165
  • 2015年08月29日 02:07
  • 184

Android自定义控件:仿美团下拉菜单及相关代码优化

最近的项目中用到了类似美团中的下拉多选菜单,在实际开发过程中,也发现了一些问题,主要归纳如下:1.当菜单较为复杂时,如果不能设计好代码逻辑,将造成控件难于维护 2.美团菜单可以连续点击顶部tab,切换...
  • lidec
  • lidec
  • 2016年04月21日 22:34
  • 3808

计算机编译原理课件H:\编译原理\课件\第七章 代码优化.ppt

  • 2011年06月09日 14:19
  • 598KB
  • 下载

深入应用C++11 代码优化与工程级应用

  • 2017年07月09日 18:28
  • 9.54MB
  • 下载

个人分享 站长们容易忽略的代码优化

  • 2014年08月28日 15:41
  • 258KB
  • 下载

代码优化方案

  • 2014年10月20日 18:26
  • 1.17MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对Text控件增量赋值的代码优化
举报原因:
原因补充:

(最多只允许输入30个字)