程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#開發小技巧--對Text控件增量賦值的代碼優化

C#開發小技巧--對Text控件增量賦值的代碼優化

編輯:.NET實例教程
筆者在開發一個小程序的時候,遇到一個需求,就是要把指定的文本內容打開,逐行判斷、組裝後再顯示在Text控件中。
起初,筆者使用
while(streamreader.Peek()>0)
{
...
textBox1.Text += strline;
}
streamreader.close();
在運行的過程中無錯誤,可是在裝載數據的時候效率低下,裝載1000行的記錄居然需要15秒左右,大大的影響了使用。
在調試過程中,筆者發現,streamreader.Open函數調用並不怎麼需要耗時,而循環讀完這1000行數據的耗時也不到1秒,因此,把耗時的操作鎖定在textBox1.Text+=strline上,猜想,可能是textBox1.Text在聲明時分配了一定的內存,在每次賦值的過程中可能又需要重新分配內存,因textBox1控件所占空間比較大,因此重新分配內存占用了大部分的時間。
為了證實這個猜想,筆者把程序修改為:
string strData="";
while(streamreader.Peek()>0)
{
...
strData+= strline;
}
textBox1.Text=strData;
streamreader.close();
經調試運行,在加載1000行記錄的數據文件僅需要1秒鐘左右的時間。
這個案例說明,對控件、類屬性需要增量賦值時,最好先賦值到一個變量,然後再將變量的值賦給控件、類屬性,以避免因為頻繁修改控件、類屬性而頻繁修改內存而導致效率低下。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved