惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - HelloSnoopy

写了个用一个文件定义样式的DataGrid 一个最基本的WebService+Flash调用的实例 [转载]如何奔向程序员打工的出头之日? 一定要讲给孩子们的20个小故事 人脉对职业生涯最重要 (转) 爱情的10种样子,送给懂爱的朋友们 装了Enterprise Library.NET 200501release C#判断是否为数字的最好速度! 开源的 BugTracker.net 错误跟踪管理系统 Enjoy new year of 2005! Flash AS2 用EventDispatcher广播事件 设计模式随笔-让众口不再难调 CodeSmith使用心得 [专题]MVC构架模式 用一条SQL完成数据表的行统计 如何使IFrame的长宽与内容自动适应大小 为Project提供一个统一风格的DataGrid 用于读取树形任一节点下所有级别子节点的SqlServer UDF asp.net forums中定时器的应用
使用Microsoft Application Block之Cache Application
HelloSnoopy · 2004-12-26 · via 博客园 - HelloSnoopy

关于caching application block可以从http://www.microsoft.com/resources/practices/default.mspx下载

这里我们介绍一下简单的使用

1.建立一个windows form的测试程序

textbox用来显示cache的内容,button用来获取cache项.程序不能在简单了哦.

2.添加Cache的引用(在block的安装目录,直接copy过来):

Microsoft.ApplicationBlocks.Cache.dll
Microsoft.ApplicationBlocks.Data.dll
Microsoft.ApplicationBlocks.ExceptionManagement.dll
Microsoft.ApplicationBlocks.ExceptionManagement.Interfaces.dll
MemoryMappedFileStream.dll

3.配置config文件

因为是win form,所以添加一个app.config,如果是web引用,则对应web.config文件.

默认的文件示例:C:\Program Files\Microsoft Application Blocks for .NET\Caching Framework\Code\CS\Solution Items

这里我们直接copy app.config的内容吧.

好了,所有部署就完成了,下面来看看code

using System.Data;
using Microsoft.ApplicationBlocks.Cache;

namespace WinApp_Block_Cache
{
    
/// <summary>
    
/// Form1 的摘要说明。
    
/// </summary>

    public class Form1 : System.Windows.Forms.Form
    
{
        
private System.Windows.Forms.Button button1;
        
private System.Windows.Forms.TextBox textBox1;

        
private void button1_Click(object sender, System.EventArgs e)
        
{
            
this.textBox1.Text = (string)GetCachedItem("hello");    
        }

        
private object GetCachedItem(string itemName)
        
{
            
//获取Cache管理的singlton
            CacheManager cacheMgr = CacheManager.GetCacheManager();
            
object obj = cacheMgr.GetData(itemName);
            
if(obj == null)
            
{
                
//下面是ExtendedFormatTime设置释义
                /// <remarks>
                
/// Extended format sintax : <br/><br/>
                
/// 
                
/// Minute       - 0-59 <br/>
                
/// Hour         - 0-23 <br/>
                
/// Day of month - 1-31 <br/>
                
/// Month        - 1-12 <br/>
                
/// Day of week  - 0-7 (Sunday is 0 or 7) <br/>
                
/// Wildcards    - * means run every <br/>
                
/// Examples: <br/>
                
/// * * * * *    - expire every minute of every day <br/>
                
/// 5 * * * *    - expire 5th minute of every hour or every minute
                
///                   after 1 hour from the last used time, whichever
                
///                   is earlier <br/>
                
/// * 21 * * *   - expire every minute of the 21st hour of every day 
                
///                   or one hour after every day<br/>
                
/// 31 15 * * *  - expire 3:31 PM every day <br/>
                
/// 7 4 * * 6    - expire Saturday 4:07 AM <br/>
                
/// 15 21 4 7 *  - expire 9:15 PM on 4 July <br/>
                
/// </remarks>

                Microsoft.ApplicationBlocks.Cache.ICacheItemExpiration[] exps = 
                    
{
                        
//设置cache过期依赖,这里设置1分钟后过期.
                        
//你可以设置多个过期依赖项,该block提供如下四种过期依赖:
                        
//AbsoluteTime
                        
//ExtendedFormatTime
                        
//FileDependency
                        
//SlidingTime

                        
new Microsoft.ApplicationBlocks.Cache.Expirations.ExtendedFormatTime("* * * * *")
                    }
;
                obj 
= "hello world!!" + DateTime.Now.Millisecond.ToString();

                
//如果不想对cache过期事件处理,可把callback设为null
                
//这里我们用CacheExpiredProcess来处理cache的过期
                cacheMgr.Add(itemName,
                    obj,
                    exps,
                    CacheItemPriority.High,
                    
new CacheItemRemovedCallback(CacheExpiredProcess));
            }

            
return obj;
        }

        
//设置了一个处理过期事件函数
        private void CacheExpiredProcess(string cacheKey,CacheItemRemoveCause cause)
        
{
            MessageBox.Show(cacheKey 
+ " is expired!");
        }


    }

}