zoukankan      html  css  js  c++  java
  • 78k的text 文件,输出到textbox 竟然用了20几秒的原因

      开始查资料以为是io读取的,磁盘速度慢的之类的,后来一想,text 又不是几十万条数据,才那么两千行,咋回事。

    原来是循环中不停的修改textbox值导致的。

    总结:

     比较大的运算,特别是大的循环,不要操作控件,因为控件的一些属性每改变一次,都要paint重绘一次,这样效率会很低
    一般用变量来操作,然后完了一次就执行掉。

    贴上代码:

    string file = fileDialog.FileName;
    //删除后缀 存入files类Filename属性 ,后用于存在word第一行

    StreamReader sr = new StreamReader(file, System.Text.Encoding.Default);
    String line;
    StringBuilder sb = new StringBuilder();
    // int n = 0;
    while (sr.Peek() > -1)
    {

    //显示在textbox中
    sb.Append(line + " ");
    //textBox2.Text = sb.ToString();   //sb 在循环中向 texbox2 发送数据,每次发送,textbox控件都要刷新一次,导致程序效率直线下降。
    //跳过行空格
    if (line.Trim() != "")
    {
    ……
    if (lines.Length >= 3)
    {

    //数据传入数组然后入队列
    ……
    }
    }
    }

    r.Close(); sr.Dispose();
    textBox2.Text = sb.ToString(); //放在此处问题解决
    }
    }

  • 相关阅读:
    ECharts图形库
    python_flask 注册,登陆,退出思路 ---纯个人观点
    python基础-类的继承
    python基础-面向对象
    python基础-大杂烩
    python基础-异常处理
    python基础-文本操作
    python基础-模块
    python基础-函数
    python基础-字典
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/5632695.html
Copyright © 2011-2022 走看看