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(); //放在此处问题解决
    }
    }

  • 相关阅读:
    hashmap
    Java log
    内存映像
    Java 类加载器
    keepalived配虚拟ip(vip)的作用
    zookeeper和keepalived的区别
    Linux修改/etc/profile配置错误command is not found自救方法
    在windows上部署使用Redis
    Nginx+Tomcat安装与配置(windows版)
    Tomcat+Redis+Nginx实现session共享(Windows版)
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/5632695.html
Copyright © 2011-2022 走看看