开始查资料以为是io读取的,磁盘速度慢的之类的,后来一想,text 又不是几十万条数据,才那么两千行,咋回事。
原来是循环中不停的修改textbox值导致的。
总结:
一般用变量来操作,然后完了一次就执行掉。
贴上代码:
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(); //放在此处问题解决
}
}