缓存类的实现(c#)

缓存类的实现(c#)

ID:20179451

大小:68.00 KB

页数:6页

时间:2018-10-10

缓存类的实现(c#)_第1页
缓存类的实现(c#)_第2页
缓存类的实现(c#)_第3页
缓存类的实现(c#)_第4页
缓存类的实现(c#)_第5页
资源描述:

《缓存类的实现(c#)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、缓存类的实现(C#)>>教育资源库小弟最近在编写一个O/RM组件(当然功能还是相当少的)。大家都应该清楚把实体对象更新到数据库必须经过一系列的转换;特别是SQL语句的生成是比较费资源的,因为中间处里的东西实大是太多了。在设计的过程中我就想如果一个对象插入数据库后把相应的mand保存在缓存中;下一次同一个类型的对象做这个操作时检测一下缓存如果有就直接拿来用这样效率应该会高些。抱着这种想法就开始设计了(不过心里还是上上下下的,毕竟第一次尝试)。因为缓存中的对象处理比较复杂点,在多线程中存在共享的问题,如果两个线程同时调用同一个mand这样一定会产生处理错误的!为了更好地控制mand对

2、象的共享,特别为mand定义了持久化的接口。经过一段时间的设计和编写,算有点成果吧,顺把自己做的东西共享一下。以下是组件测试的情况P42.41GSqlServersp3运行的代码大概如下:Entitys.Customerscustomer=neers();DateTimedt=DateTime.Noapcontainer.OpenSession()){session.Open();for(inti=0;i<2000;i++){customer.CustomerID=Guid.Neer.panyName="henry";session.Save(customer);}}tp1

3、=neeSpan(DateTime.Nomary>///数据缓存保存信息异步处理委托///</summary>delegatevoidEventSaveCache(objectkey,objectvalue);///<summary>///对象缓存类///</summary>publicclassCache{privateMappingContainermContainer;///<summary>///获取或设置当前缓存对象所在的关系映象容器///</summary>publicMappingContainerC

4、ontainer{get{returnmContainer;}set{mContainer=value;}}///<summary>///构造缓存对象///</summary>publicCache(){////TODO:在此处添加构造函数逻辑//}///<summary>///用于缓存数据的Hashtable///</summary>protectedSystem.Collections.Hashtable_Cache=ne.Collections.Hashtable();protectedObject_LockObj=nemar

5、y>///获取指定键值的对象///</summary>///<paramname="key">键值</param>///<returns>object</returns>publicvirtualobjectGetObject(objectkey){if(_Cache.ContainsKey(key))return_Cache[key];returnnull;}///<summary>///把对象按指定的键值保存到缓存中///</summary>///<paramname="key"&

6、gt;键值</param>///<paramname="value">保存的对象</param>publicvoidSaveCaech(objectkey,objectvalue){EventSaveCachesave=ne.AsyncCallback(Results),null);}privatevoidResults(IAsyncResultar){EventSaveCachefd=(EventSaveCache)((AsyncResult)ar).AsyncDelegate;fd.En123下一页>>>>这篇文章来自..,。dInvoke

7、(ar);}///<summary>///把对象按指定的键值保存到缓存中///</summary>///<paramname="key">键值</param>///<paramname="value">保存的对象</param>protectedvirtualvoidSetCache(objectkey,objectvalue){lock(_LockObj){if(!_Cache.ContainsKey(ke

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。