我有一个巨大的字符串(我们正在谈论1696108字符的长度),我已经很快从文本文件中读取。当我将它添加到我的文本框(C#)时,需要很长时间才能完成。像记事本++(非托管代码,我知道)的程序几乎可以立即执行,但记事本也需要很长时间。我怎样才能有效地添加这个巨大的字符串,以及像Notepad ++这样的东西如此快速地实现呢?如何有效地将一个巨大的字符串添加到文本框?
4
A
回答
5
记事本和窗口TextBox类针对64K文本进行了优化。您应该使用RichTextBox
0
你可以,最初,只呈现UI中可见的前n个字符(假设你有一个滚动文本框)。然后,启动一个单独的线程来异步渲染连续的块。
或者,您可以将它与来自文件的输入流结合使用。阅读一个块并立即将其附加到文本框中。例如(不彻底的,但你的想法)...
private void PopulateTextBoxWithFileContents(string path, TextBox textBox)
{
using (var fs = File.OpenRead(path))
{
using (var sr = new StreamReader(fs))
{
while (!sr.EndOfStream)
textBox.Text += sr.ReadLine();
sr.Close();
}
fs.Close();
}
}
9
如果这是Windows窗体我建议试图RichTextBox中的下拉更换为您文本框。在过去,我发现它在处理大文本方面效率更高。此外,在进行修改时,请务必使用经过时间考验的SelectionStart/SelectedText方法,而不是操纵Text属性。
rtb.SelectionStart = rtb.TextLength;
rtb.SelectedText = "inserted text"; // faster
rtb.Text += "inserted text"; // slower
相关问题
- 1. 如何找到一个巨大的字符串内的字符串出现的次数就像一本大书
- 2. 将文本字符串添加到UITextField
- 3. SQL Server - 将字符串添加到文本列(等效连接)
- 4. jquery:将字符串添加到gridview中的文本框
- 5. 如何从一个大的txt文件中仅有效地读取字符串
- 6. 如何将一个版权符号添加到字符串?
- 7. C++将字符串添加到现有文本文件
- 8. 将字符串添加到另一个字符串中
- 9. 如何将一个数组的值添加到字符串中
- 10. 的JavaScript如何将一个变量添加到字符串
- 11. 如何将多个文本文件中的字符串添加到数组中
- 12. 将大文本框添加到页面
- 13. 如何正确处理一个巨大的字符串?
- 14. 侦听串口。如何将字符串添加到列表框?
- 15. 如何有效地将大量元素添加到stxxl矢量?
- 16. 如何加快处理一个巨大的文本文件?
- 17. 将字符串添加到字符串
- 18. 如何添加一个字符串到.txt文件的结尾?
- 19. 巨大的字符串到HTML
- 20. 如何有效地将很多按钮添加到tkinter框架?
- 21. JQuery MVC将一个字符串加载到一个文本显示框中
- 22. 如何将字符串添加到string.xml
- 23. 如何将字符串添加到ClassificationDataSet?
- 24. 如何将字符串添加到字符串numpy的ndarray
- 25. 如果选中,将文本添加到CheckedListBox中的字符串?
- 26. 将方括号添加到字符串的第一个字符
- 27. 如何将字符串添加到具有不同颜色的文本区域?
- 28. 存储一个巨大的HTML字符串在一个字符串变量
- 29. 如何将现有字段信息添加到新添加的infoPath文本框?
- 30. 如何将一个整数添加到字符串?