我有一個巨大的字符串(我們正在談論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. 如何找到一個巨大的字符串內的字符串出現的次數就像一本大書
- 3. JavaScript如何將字符一起添加到文本框中
- 4. 將文本字符串添加到wp_enqueue_script
- 5. 將文本字符串添加到UITextField
- 6. iOS如何在一個巨大的字符串中找到2個字符串之間的多個字符串?
- 7. 將新字符串添加到iOS中的可本地化字符串文件
- 8. SQL Server - 將字符串添加到文本列(等效連接)
- 9. jquery:將字符串添加到gridview中的文本框
- 10. 如何將字符串添加到文本文件?
- 11. 如何從一個大的txt文件中僅有效地讀取字符串
- 12. Python - 如何將一個空字符添加到一個字符串,以便將一列添加到數據庫
- 13. 如何在兩個文本框中添加字符串值
- 14. 從一個巨大的字符串中提取子字符串
- 15. 如何將一個版權符號添加到字符串?
- 16. C++將字符串添加到現有文本文件
- 17. 將文本字符串添加到現有的mySQL表
- 18. 的JavaScript如何將一個變量添加到字符串
- 19. 如何將一個數組的值添加到字符串中
- 20. 如何將多個文本文件中的字符串添加到數組中
- 21. 將字符串添加到另一個字符串中
- 22. 如何正確處理一個巨大的字符串?
- 23. 如何打印一個巨大的字符串
- 24. 將大文本框添加到頁面
- 25. 偵聽串口。如何將字符串添加到列表框?
- 26. 如何有效地將大量元素添加到stxxl矢量?
- 27. 如何加快處理一個巨大的文本文件?
- 28. 如何有效地將很多按鈕添加到tkinter框架?
- 29. 如何添加一個字符串到.txt文件的結尾?
- 30. 巨大的字符串到HTML