標籤:cache 緩衝 資料 類 常用協助類
C#緩衝主要是為了提高資料的讀取速度。因為伺服器和應用用戶端之間存在著流量的瓶頸,所以讀取大容量資料時,使用緩衝來直接為用戶端服務,可以減少用戶端與伺服器端的資料互動,從而大大提高程式的效能。
以下為工作中經常用到的快取作業公用類庫整理:
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Caching;using System.Web.Hosting;namespace ECS.Utility{ /// <summary> /// Caching 的摘要說明 /// </summary> public class Caching { /// <summary> /// 擷取當前應用程式指定CacheKey的Cache值 /// </summary> /// <param name="CacheKey"></param> /// <returns></returns>y public static object GetCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache[CacheKey]; } /// <summary> /// 設定當前應用程式指定CacheKey的Cache值 /// </summary> /// <param name="CacheKey"></param> /// <param name="objObject"></param> public static void SetCache(string CacheKey, object objObject) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject); } /// <summary> /// 設定當前應用程式指定CacheKey的Cache值 /// </summary> /// <param name="CacheKey"></param> /// <param name="objObject"></param> public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration); } /// <summary> /// 清除單一金鑰快取 /// </summary> /// <param name="key"></param> public static void RemoveKeyCache(string CacheKey) { try { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Remove(CacheKey); } catch { } } /// <summary> /// 清除所有緩衝 /// </summary> public static void RemoveAllCache() { System.Web.Caching.Cache _cache = HttpRuntime.Cache; IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); if (_cache.Count > 0) { ArrayList al = new ArrayList(); while (CacheEnum.MoveNext()) { al.Add(CacheEnum.Key); } foreach (string key in al) { _cache.Remove(key); } } } /// <summary> /// 以列表形式返回已存在的所有緩衝 /// </summary> /// <returns></returns> public static ArrayList ShowAllCache() { ArrayList al = new ArrayList(); System.Web.Caching.Cache _cache = HttpRuntime.Cache; if (_cache.Count > 0) { IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); while (CacheEnum.MoveNext()) { al.Add(CacheEnum.Key); } } return al; } }}
C#資料緩衝介紹及Caching通用協助類整理