zoukankan      html  css  js  c++  java
  • 使用APPLICATION制作缓存,转存一下,有一段写的还可以。

     public sealed class CacheManager
       {
         private HttpApplicationState appPool = null;
         /// <summary>
         /// 构造函数
         /// </summary>
         public CacheManager()
         {
           this.appPool = HttpContext.Current.Application;
         }
         /// <summary>
         /// 构造函数
         /// </summary>
         /// <param name="application">HttpApplicationState 对象</param>
         public CacheManager(HttpApplicationState application)
         {
           this.appPool = application;
         }
         /// <summary>
         /// 删除缓存
         /// </summary>
         /// <param name="key">缓存名称</param>
         public void Delete(string key)
         {
           this.appPool.Lock();
           this.appPool.Remove(key);
           this.appPool.Remove(key + "(expTime)");
           this.appPool.UnLock();
         }
         /// <summary>
         /// 添加缓存
         /// </summary>
         /// <param name="key">缓存名称</param>
         /// <param name="value">缓存值</param>
         /// <returns></returns>
         public bool Add(string key, object value)
         {
           try
           {
             this.appPool.Lock();
             this.appPool[key] = value;
             this.appPool[key + "(expTime)"] = DateTime.MaxValue; // 这里设置一个最大时间值,直到Application结束。
             this.appPool.UnLock();
           }
           catch
           {
             return false;
           }
           return true;
         }
         /// <summary>
         /// 添加缓存
         /// </summary>
         /// <param name="key">缓存名称</param>
         /// <param name="value">缓存值</param>
         /// <param name="expireTime">有效时间</param>
         /// <returns></returns>
         public bool Add(string key, object value, DateTime expireTime)
         {
           try
           {
             this.appPool.Lock();
             this.appPool[key] = value;
             this.appPool[key + "(expTime)"] = expireTime;
             this.appPool.UnLock();
           }
           catch
           {
             return false;
           }
           return true;
         }
         /// <summary>
         /// 获取缓存
         /// </summary>
         /// <param name="key">缓存名称</param>
         /// <returns></returns>
         public object Get(string key)
         {
           object o = this.appPool.Get(key + "(expTime)");
           if (o != null)
           {
             TimeSpan ts = (TimeSpan)(DateTime.Now - (DateTime)o);
             if (ts.TotalSeconds < 0)
             {
               return this.appPool.Get(key);
             }
             else
             {
               this.Delete(key);
               return null;
             }

  • 相关阅读:
    【自制操作系统03】读取硬盘中的数据
    【自制操作系统02】环境准备与启动区实现
    【自制操作系统01】硬核讲解计算机的启动过程
    【30天自制操作系统】day06:中断
    java8 stream ,filter 等功能代替for循环
    如何评估工作量--三点估算
    python 错误AttributeError: 'module' object has no attribute 'AF_INET'
    python入门学习
    mysql5.7.10和mysql5.5.39两个版本对于group by函数的处理差异
    jenkins 构建时,取消构建测试类
  • 原文地址:https://www.cnblogs.com/upshania/p/3540174.html
Copyright © 2011-2022 走看看