使用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;
}
使用APPLICATION制作缓存,转存一下,有一段写的还可以。的更多相关文章
- 不要在Application中缓存数据
在你的App中的很多地方都需要使用到数据信息,它可能是一个session token,一次费时计算的结果等等,通常为了避免Activity之间传递数据的开销,会将这些数据通过持久化来存储. 有人建 ...
- IM群聊消息究竟是存1份(即扩散读)还是存多份(即扩散写)?
1.前言 IM的群聊消息,究竟存1份(即扩散读方式)还是存多份(即扩散写方式)? 上一篇文章<IM群聊消息的已读回执功能该怎么实现?>是说,“很容易想到,是存一份”,被网友们骂了,大家争论 ...
- HTML5之应用缓存---manifest---缓存使用----Web前端manifest缓存
相信来查这一类问题的都是遇到问题或者是初学者吧! 没关系相信你认真看过之后就会知道明白的 这是HTML5新加的特性 HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连 ...
- HTML5之应用缓存---manifest---缓存使用----HTML5的manifest缓存
相信来查这一类问题的都是遇到问题或者是初学者吧! 没关系相信你认真看过之后就会知道明白的 这是HTML5新加的特性 HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连 ...
- 安国AU6989主控 + K9GBG08U0A(NAND) 制作4GB闪存驱动器
文档标识符:AU6989_FLASH-DRIVE_D-P8 作者:DLHC 最后修改日期:2020.8.22 本文链接: https://www.cnblogs.com/DLHC-TECH/p/AU6 ...
- 瑞发科NS1081主控 + THGBM5G7A2JBAIR(eMMC) 制作16GB闪存驱动器
文档标识符:NS1081_FLASH-DRIVE_D-P9 作者:DLHC 最后修改日期:2020.8.22 本文链接:https://www.cnblogs.com/DLHC-TECH/p/NS10 ...
- FatJar—Java Application制作jar包
Fat Jar功能非常强大,先下载吧. 下载地址:sourceforge.net/projects/fjep/files/ http://files.cnblogs.com/files/nidongd ...
- php静态缓存简单制作
制作缓存的目的是为了让我们的页面运行更加快速,减少读取数据库内容的次数,给用户更好的体验,为此我们可以使自己的程序做一下缓存,并且设置一个缓存过期的时间,来保证与数据库的一致,当然并不是所有的程序都适 ...
- 不要在Android的Application对象中缓存数据!
前言 在你的App中的很多地方都需要使用到数据信息,它可能是一个session token,一次费时计算的结果等等,通常为了避免Activity之间传递数据的开销,会将这些数据通过持久化来存储. ...
随机推荐
- MSW下wxWidgets的安装与编译
教程摘自网上各大博客.贴吧.论坛,结合自己的实践做了一些实质性的修改. 一.安装 首先从http://sourceforge.net/projects/wxwindows/files/2.8.12/w ...
- HW4.24
public class Solution { public static void main(String[] args) { double sum = 0; for(int i = 1; i &l ...
- 2 weekend110的SecureCRTPortable远程连接 + 上传安装jdk + 上传安装配置hadoop
企业公认的最新文本版本: https://archive.apache.org/dist/ 玩玩这个远程连接软件,是个绿色软件. 别人已经做好了的. 解压之后, 下面,软件展示下, 这会 ...
- 322. Coin Change
动态规划里例题,硬币问题. p[i] = dp[i - coin[j]] + 1; 注意i < coin[j] dp[i-coin[j]]无解都要跳过. public class Solutio ...
- jmeter控制器
1.仅一次控制器 这个控制器可以保证线程在多次循环跑得情况下只登陆一次 2.循环控制器(Loop Controller:设置循环次数 结果: 3. ForEach控制器(ForEach Contro ...
- github pages简易指南
在我之前的博客用Octopress在Github pages上写博客(博客园上,github pages上)中介绍了怎么在Github Pages上写博客,今天发现了一个很不错的github page ...
- Quartz定时任务学习(二)web应用
web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...
- onkeyup 事件会在键盘按键被松开时发生
定义和用法 onkeyup 事件会在键盘按键被松开时发生. 语法 onkeyup="SomeJavaScriptCode" 参数 描述 SomeJavaScriptCode 必需. ...
- ExtJS笔记--applyTo和renderTo的差别
extjs中常常会用到renderTo或applyTo配置选项.这里,我就比較下两者的差别与使用方法.1.renderTo与render方法相应2.applyTo与applyToMarkup方法相应 ...
- GUI编程笔记(java)06:GUI窗体添加按钮并对按钮添加事件案例
1.需求:把按钮添加到窗体,并对按钮添加一个点击事件. 步骤: (1)创建窗体对象(2)创建按钮对象(3)把按钮添加到窗体(4)窗体显示 2.编写程序思路: 窗体布局:窗体中组件的排列方式 布局分类 ...