国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

實戰 .Net 數據訪問層 - 17

2024-07-10 13:03:19
字體:
來源:轉載
供稿:網友
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是自己實現的,不確保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來說就不太美妙了,既要自己實現isexpired,又要擔心多線程并發訪問時的種種問題,真是吃力不討好的苦差啊l!上面代碼中的“_htwinappcache”(自定義cache)以及“lock (_htwinappcache)”(確保thread-safe)就是為了應付windows application而采取的兩種非常手段!



可能有朋友會問了,windows application也要考慮cache management問題嗎?我的回答是:看情況而定!

對于普通的client windows application,確實很少(請注意:不是沒有)涉及這個話題,但對于server application,例如:remoting server,windows service(webservices不在此列),都促使我們不得不面對“嚴峻的現實”l(.net framework怎么就沒有提供system.windows.caching命名空間呢?害得我們不得不另起爐灶l)!



上面的代碼就是考慮到web application與windows application并存的情況下,我們該如何實現cache management支持!



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

web application中的cache management自動化程度雖然很高,但也“逃不過”配置一關,而讀取完配置信息后的處理工作就當仁不讓地落到了parameter classes的肩上(請參考上面的cache management之“結構示意圖”)!



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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武乡县| 牡丹江市| 玛纳斯县| 焦作市| 左权县| 蒙阴县| 静安区| 上虞市| 勃利县| 石阡县| 沾益县| 丽江市| 祥云县| 白朗县| 余庆县| 东兴市| 云梦县| 宣城市| 马边| 成都市| 都昌县| 秀山| 噶尔县| 南安市| 漳浦县| 县级市| 隆林| 抚州市| 富锦市| 台南县| 衢州市| 舞阳县| 德化县| 蛟河市| 永济市| 万全县| 登封市| 册亨县| 本溪市| 上虞市| 彩票|