国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰坪| 海宁市| 鹤岗市| 茂名市| 壶关县| 伊金霍洛旗| 天台县| 嘉黎县| 交口县| 惠州市| 临清市| 小金县| 滨州市| 安庆市| 房山区| 阿坝县| 敖汉旗| 琼海市| 高雄县| 绵阳市| 页游| 新民市| 浮梁县| 广西| 论坛| 甘肃省| 吉木萨尔县| 宁国市| 樟树市| 海兴县| 望都县| 怀安县| 兴业县| 邵阳市| 溆浦县| 宁海县| 株洲市| 麻江县| 灵武市| 伊金霍洛旗| 武义县|