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

  • 相关阅读:
    生成唯一流水码
    搜索类
    数字转中文
    字符串转数组工具类
    类转换
    P1112 区间连续段
    P1113 同颜色询问
    Turtlebot3 机器学习
    Turtlebot2进阶教程
    turtlebot A2
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/5632695.html
Copyright © 2020-2023  润新知