我有一個windows窗體應用程序,我在其中創建了Panel.I設置了面板True.Inside面板的AutoScroll屬性,我創建了一個RichtextBox.Now按照我的要求我要讀通過符合延遲的每一行到這個RichtextBox.I一個文本文件行已採取定時爲此在frmHome_Load event.I有下面的代碼來做到這一點..在線程中讀取文本文件到面板裏的RichtextBox
private void frmHome_Load(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
const Int32 BufferSize = 128;
using (var fileStream = File.OpenRead("E:\\File\\temp.txt"))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize))
{
String line;
while ((line = streamReader.ReadLine()) != null)
{
// Process line
richTextBox1.Text += line + Environment.NewLine;
}
}
}
現在有了這個代碼爲,文本文件很大,它使我的窗口窗體應用程序被絞死。意味着我不能做任何事情,除了從任務欄關閉窗口。
爲了解決這個問題,我想用Threads來讀取和顯示textfile.With線程,我想每5秒鐘睡一次,然後從那裏開始。 我想知道這是正確的,將解決我的問題。如果是的如何使用線程做我的發佈代碼相同。 請幫助。
爲什麼一定要逐行添加文本?爲什麼你不能一次添加所有的文本?是否因爲有很多線條? (很多,如成千上萬行。) –
我的要求是逐條顯示讀取的行。而我的文本文件包含一行1行。 – Ram
但它會很快加載這些行,以至於用戶將無法看到逐行添加的行 - 除非您想在添加的每行之間添加延遲(在這種情況下,您應該將該要求添加到問題)。如果沒有,那麼我就看不到逐行添加線的問題。 –