• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        實戰 .Net 數據訪問層 - 17

        實戰 .Net 數據訪問層 - 17

        更新時間:2019-07-04 文章作者:未知 信息來源:網絡 閱讀次數:

        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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲精品高清无码视频| 毛片免费在线观看网址| 亚洲第一成人影院| 亚洲GV天堂GV无码男同 | 三级网站在线免费观看| 色播在线永久免费视频| 亚洲精品宾馆在线精品酒店| 日韩一品在线播放视频一品免费| 久久综合国产乱子伦精品免费| 国产妇乱子伦视频免费| 久久精品亚洲精品国产色婷| 国产成人精品久久亚洲| 国产免费区在线观看十分钟| 亚洲毛片αv无线播放一区| 国产精品无码免费专区午夜 | 亚洲国产天堂久久综合网站| 人妻免费一区二区三区最新| 亚洲AV午夜成人影院老师机影院 | 在线亚洲高清揄拍自拍一品区| 黄页网站在线免费观看| 国产伦精品一区二区三区免费迷| 亚洲韩国在线一卡二卡| 欧亚精品一区三区免费| 毛片亚洲AV无码精品国产午夜| 3344在线看片免费| 亚洲欧洲春色校园另类小说| 亚洲免费网站观看视频| 国产一区二区三区亚洲综合| 久久亚洲中文字幕精品一区四| 亚洲人成www在线播放| 好大好硬好爽免费视频| 免费人成网站永久| 亚洲国产第一页www| 免费精品国偷自产在线在线| 精品在线免费视频| 久久精品国产亚洲一区二区| 美女视频黄是免费的网址| 无码免费又爽又高潮喷水的视频 | 99久久99这里只有免费的精品| 日日AV拍夜夜添久久免费| 国产区在线免费观看|