欧美特黄不卡,涩涩视频在线,成人国产精品一区二区网站,亚洲一区二区三区欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

實戰(zhàn) .Net 數(shù)據(jù)訪問層 - 17

實戰(zhàn) .Net 數(shù)據(jù)訪問層 - 17

更新時間:2019-07-04 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

GetCache的代碼很簡單:有則取之,無則填之,“是否過期”是其有效性的唯一判斷條件!接下來,作者就這個“是否過期”問題來進行一些探索,看看到底是怎么回事。



Ok,還是先請大家看段代碼:



代碼15:過期無效之Cache篇!

public class CacheManager

{

private bool IsCacheExpired(string key)

{

bool bExpired = false;



if (HttpContext.Current != null)

{

// Web cache自動支持thread-safe,無須鎖定資源

if (HttpContext.Current.Cache[key] == null)

bExpired = true;

}

else

{

// Windows cache是自己實現(xiàn)的,不確保thread-safe,必須鎖定資源

lock (_htWinAppCache)

{

if (_htWinAppCache[key] == null)

bExpired = true;

else

{

WinAppCache cache = (WinAppCache)

_htWinAppCache[key];



if (cache.IsExpired())

{

cache = null;

_htWinAppCache[key] = null;

bExpired = true;

}

}

}

}



return bExpired;

}

}

























































































各位,從上面的代碼中,是否看出了一些端倪?



由于Web Appliction Cache(通過HttpContext.Current != null判斷是否Web ApplicationJ)得到了.NET Framework的直接支持,所以判斷“是否過期”非常方便,也不存在任何thread-safe問題J。但這個問題對于Windows Application來說就不太美妙了,既要自己實現(xiàn)IsExpired,又要擔(dān)心多線程并發(fā)訪問時的種種問題,真是吃力不討好的苦差啊L!上面代碼中的“_htWinAppCache”(自定義Cache)以及“l(fā)ock (_htWinAppCache)”(確保thread-safe)就是為了應(yīng)付Windows Application而采取的兩種非常手段!



可能有朋友會問了,Windows Application也要考慮Cache Management問題嗎?我的回答是:看情況而定!

對于普通的Client Windows Application,確實很少(請注意:不是沒有)涉及這個話題,但對于Server Application,例如:Remoting Server,Windows Service(WebServices不在此列),都促使我們不得不面對“嚴(yán)峻的現(xiàn)實”L(.NET Framework怎么就沒有提供System.Windows.Caching命名空間呢?害得我們不得不另起爐灶L)!



上面的代碼就是考慮到Web Application與Windows Application并存的情況下,我們該如何實現(xiàn)Cache Management支持!



當(dāng)前版本中,作者實現(xiàn)Windows Application下的“是否過期”非常簡單:就是看它被訪問過幾次!而這個次數(shù),當(dāng)然必須在配置信息中進行設(shè)定了(請參考本段最后的一個配置樣例)!

Web Application中的Cache Management自動化程度雖然很高,但也“逃不過”配置一關(guān),而讀取完配置信息后的處理工作就當(dāng)仁不讓地落到了Parameter Classes的肩上(請參考上面的Cache Management之“結(jié)構(gòu)示意圖”)!



下一段:http://www.csdn.net/develop/Read_Article.asp?id=27561

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 凤城市| 思茅市| 哈尔滨市| 盐城市| 常宁市| 伊宁市| 鱼台县| 衢州市| 永寿县| 邳州市| 五常市| 偏关县| 新建县| 毕节市| 宿州市| 成都市| 广南县| 湘潭县| 曲阳县| 纳雍县| 壶关县| 仁布县| 侯马市| 金溪县| 龙里县| 墨江| 湖口县| 文山县| 宝坻区| 唐海县| 澜沧| 东兰县| 涿鹿县| 兴义市| 长沙市| 东乌珠穆沁旗| 莒南县| 原平市| 湖州市| 繁峙县| 政和县|