我在Windows窗体VB.NET程序中遇到一个问题,当阅读回车时,但仅在第二次读取之后。
我已经创建了一个全新的项目,只关注使程序冻结的部分,它的行为是相同的。
这是相当容易在你的身边重新创建(或不,如果它与我的设置.).
- 新建Windows窗体VB.NET(6.0)项目
- 添加文本框并使其多行
- 添加一个按钮并将下面的代码粘贴到处理单击的方法下
- 在bin中创建一个“first.txt”文件,其中包含一个字母、一个回车符和另一个字母
文件示例:
A
B
字符串
相关代码:
Using fichier As FileStream = New FileStream("first.txt", FileMode.OpenOrCreate)
If fichier.CanRead() Then
Dim contenu(100) As Byte
fichier.Position = 0
fichier.Read(contenu, 0, 100)
TextBox1.Text = String.Empty
Try
For Each lettre As Byte In contenu
TextBox1.Text += Chr(lettre)
Next
Catch ex As Exception
End Try
End If
End Using
型
第一次点击按钮的作品,你会得到什么在下面的文本框:
第一个月
第二次点击按钮会使程序冻结。当我一步一步执行时,它发生在Chr(13)
被添加到TextBox1.Text
时。没有异常出现。
我从2013年的培训PDF从一个网站,因为我无法找到更好的。所以我很确定有一个更好的方式来读取文件,这不是我感兴趣的在这里。
我真的很想知道这段代码到底发生了什么,特别是它第一次运行的很好。
我找不到类似的帖子,我也不擅长使用诊断工具来自己解决问题。
谢谢你的帮助
L
1条答案
按热度按时间oknwwptz1#
如果控件的属性被快速更改,则将控件当作变量使用可能会导致性能问题-例如,仅更改其.Text属性中的一个字符就意味着需要重新呈现该控件。
相反,最好单独进行密集工作,然后只对控件进行一次更改,因此,对于问题中的代码,而不是:
字符串
你可以做:
型
当需要连接的项目超过6-10个时,使用StringBuilder通常比连接字符串更好。