国产高清一区二区在线_免费看肥胖女人做爰高清全过情_日韩少妇高潮抽搐_性生生活大片又黄又_粉嫩蜜臀av国产精品网站_搞黄视频免费_亚洲成a人一区二区三区_屁股翘起来趴好挨c_少妇一夜爽免费看_日本护士高潮大叫

在線客服:  

「南寧煙寒網(wǎng)絡(luò)」提供南寧網(wǎng)站建設(shè)、網(wǎng)站策劃、南寧網(wǎng)頁制作、網(wǎng)站設(shè)計、網(wǎng)站改版、南寧SEO優(yōu)化、網(wǎng)站維護、南寧網(wǎng)站優(yōu)化、南寧網(wǎng)站推廣、廣告設(shè)計等服務(wù)..

咨詢熱線

在線客服

24小時免費咨詢電話:18978941786

客服時間:上午9:30~下午6點

當(dāng)前位置:首頁>> 技術(shù)文章 >> Web開發(fā) >> .NET開發(fā)網(wǎng)站過程中易被忽視的問題

.NET開發(fā)網(wǎng)站過程中易被忽視的問題

收藏 分享 發(fā)布日期:2012-2-12 16:30:44    編輯:admin  文章來源:  點擊率:

在異常處理的時候,特別提醒兩點:

    一, 你的數(shù)據(jù)庫關(guān)閉的時候應(yīng)該是在代碼行0028前,而不是后;

    二, 有人不習(xí)慣(或者一時疏忽)加上0088行的代碼;

    針對[Sample-02]和[sample-03],把打開數(shù)據(jù)庫連接寫在所有的循環(huán)語句之前,如:
 

clsOraDb.Open(strConn)
Foreach(DataRow row in tabl.select(“”,”ProductID”)
……………

………….
Next
 
    當(dāng)然還有另外一個做法,就是用Using語句,提交.NET應(yīng)用的垃圾收集器自動收集;相關(guān)的文章很多,這里不再特別贅述。

     二、對象只管創(chuàng)建應(yīng)用,不管釋放篇
   
    我們繼續(xù)用[Sample-01]的代碼,我們現(xiàn)在看0004行的代碼:

0004 Dim dtResult As New DataTable

    誰會發(fā)現(xiàn)它被釋放,你不能,我也不能,從來沒有被釋放過。

    “0004”行的代碼解釋是,要在內(nèi)存劃分一個空間給這個定義的對象dtresult;系統(tǒng)要劃分多大的空間呢?呀,我沒有研究過(留給那些有心人吧,呵呵..)。但有一點,要在內(nèi)存劃分一個空間,就是要占用內(nèi)存。那么內(nèi)存有多大呢,不是無限大吧,也是有限的,所有運行上述代碼的最終結(jié)果是,系統(tǒng)的執(zhí)行效率越來越慢,有人就懷疑,我有內(nèi)存1到2G的,加上虛擬內(nèi)存就更大,我只能說你的懷疑沒錯??墒悄愕膽?yīng)用程序就用這么一只函數(shù)嗎?我想肯定不是,所以上百只函數(shù)的應(yīng)用執(zhí)行對內(nèi)存的消耗可想而知。如果是后臺自動運行的程序,及時是一個function,也會讓系統(tǒng)崩潰。這只是一個簡單的例子,有更復(fù)雜的。像這樣的對象應(yīng)用還有:Dataset, Datatable,DataReader,DataAdapter,Datagrid..等。

    那么怎么解決這些問題呢:

   2.1在Try catch 語句前定義好所用的對象, 如:
 

Dim dtResult As New DataTable
Dim DR as New DataReader
Dim DS as New Dataset
Try
..

Catch ex As Exception
Throw ex
Finally
End Try
 


2.2釋放的語句如下

 

Dim dtResult As New DataTable
Dim DR as New DataReader
Dim DS as New Dataset
Try
..
……………..
Catch ex As Exception
--釋放應(yīng)用的對象
Throw ex
Finally
--使用完后,釋放應(yīng)用的對象
dtResult.dispose --從內(nèi)存里清楚該對象
DR.dispose -從內(nèi)存里清楚該對象
DS.dispose -從內(nèi)存里清楚該對象
End Try

有人習(xí)慣寫成下面這樣:
Dim dtResult As New DataTable
Dim DR as New DataReader
Dim DS as New Dataset
Try
..
‘使用完后,釋放應(yīng)用的對象
dtResult.dispose ‘從內(nèi)存里清楚該對象
DR.dispose ‘從內(nèi)存里清楚該對象
DS.dispose ‘從內(nèi)存里清楚該對象
Catch ex As Exception
‘釋放應(yīng)用的對象
Throw ex
Finally
End Try
 


    這不是也釋放了嗎?我想問的是,如果程序出現(xiàn)異常,它們會釋放嗎 ?我肯定得告訴大家,它們一定不能釋放,為了確保程序的穩(wěn)定運行,我建議大家都來用Try Catch語句。

文章分頁: 1 | 2 | 3 |
本文章由南寧網(wǎng)站建設(shè)、南寧網(wǎng)站優(yōu)化、南寧網(wǎng)絡(luò)公司整理,轉(zhuǎn)載請注明出處:http://m.absorbed3d.com/

關(guān)于我們 | 域名主機 | 建站套餐 | 企業(yè)動態(tài) | 成功案例 | 網(wǎng)站推廣 | 建站知識 | 常見問題 | 聯(lián)系我們

南寧煙寒網(wǎng)絡(luò)竭誠為您免費提供南寧網(wǎng)站建設(shè)南寧網(wǎng)站設(shè)計、南寧網(wǎng)站優(yōu)化、維護以及網(wǎng)站技術(shù)很方面的網(wǎng)絡(luò)服務(wù)!

南寧網(wǎng)站建設(shè)、南寧網(wǎng)絡(luò)公司咨詢熱線電話:0771-5306126 18967841786(24小時全天電話)

煙寒網(wǎng)絡(luò) - 讓你進一步走向成功