首页 新闻 会员 周边

winform 中有类似缓存(Cache)的东西吗?

1
悬赏园豆:20 [已解决问题] 解决于 2008-05-07 16:29
<P>是这样的,timer控件感觉不太好用(我选中一个复选框等向选第二个时又重新绑定了)</P> <P>也可能是不会用timer吧。所以想找类似asp.net中cache的东西。</P> <P>不知道有没有这种东西,望高手指教。</P>
小也的主页 小也 | 初学一级 | 园豆:75
提问于:2008-05-06 17:29
< >
分享
最佳答案
0
楼主问的此问题有些意思。 如果楼主问WinForm中是否有类似缓存的机制存在,那么我同样问楼主一个问题,在WebForm中缓存存在的意义是什么呢? 个人理解如下: 一、在WebForm中主要是为了减轻Web服务器压力,在客户端提供了缓存机制,当用户访问的网页内容无变化的请求时就会调用缓存中的内容,这样一来减轻了服务器压力,避免无必要的重复操作,二来使用户网页浏览速度加快,用户体验更好。WebForm是“瘦客户端”。 二、在WinForm中,是否有必要减轻数据库等各类服务器压力呢?这些服务器在WebForm中也一般都是存在的,然而WinForm是把这些压力都集中在了客户端,不像WebForm是把这些压力集中到了Web服务器上,因此本来这就是一种“胖客户端”,再在客户端开放类似“瘦客户端”的缓存,岂不是类似“画蛇添足”,给客户端“火上浇油”吗?这是其一,其二WinForm并不会刷新自己的WinForm窗体,所以不会有明显用户体验不悦感,因此也就没有什么窗体的浏览速度的说法。 对于问题的解答: 据我所知,WinForm并没有缓存窗体等类似机制。如果你所问的类似缓存的机制是指对数据的存储更新问题,也就是说用户没有更新数据时是不往数据库服务器发送的,那么,方法一是你可以判断DataSet(客户端内存中)的数据是否更新,然后再决定是否调用提交数据的模块;方法二直接根据空间的焦点等来控制按钮的可用或可见属性。其他非数据库更新的做法与前述方法类似,这里就不重复阐述了,这样同样能减轻数据库服务器无必要的压力。 附:其实是否避免数据库服务器这种无必要的压力,也不会像WebForm那样考虑的太多,一般较好的服务器都是可以承受这种压力的,那要看你如何组织Sql语句,提交更新数据的方法了,如果方法得当这种压力并没有什么不可以的。 给楼主的建议: 从楼主的问题中不难猜测楼主原先不是开发C/S架构(WinForm)程序的,而是从B/S架构(WebForm)程序开发转到C/S架构程序开发中来的。那么希望楼主抛开一些B/S架构的知识,重新学习认识C/S架构的知识,毕竟B/S架构(WebForm、瘦客户端)和C/S架构(WinForm、胖客户端)是有区别的。
刚刚 | 老鸟四级 |园豆:3151 | 2008-05-07 02:44
用wcf,实现一个服务端,服务端cache就可以了
疯流成性 | 园豆:3 (初学一级) | 2009-12-29 15:03
在WebForm中主要是为了减轻Web服务器压力,在客户端提供了缓存机制 这个说法有问题吧,客户端提供的缓存,缓存好像都是缓存在服务器的内存中的吧,而且WinForm也没有什么http吧
Virus-BeautyCode | 园豆:1619 (小虾三级) | 2010-03-08 13:51

winform中不使用缓存?

这是开玩笑么?

在编写ERP,OA之类的管理软件,怎么可能不用缓存实时取数据! 

kfzj | 园豆:200 (初学一级) | 2013-11-05 11:31

C/S 中,当多个客户端 从数据库中查数据时,且SQL复杂,取出的数据需要计算时,难道不应该放在缓存中?

hexllo | 园豆:318 (菜鸟二级) | 2015-06-23 17:03

层主真可爱,自以为是地写了那么长篇,其实.NET Framework 4.0 就有System.Runtime.Caching了,Winform可用。

PER10 | 园豆:8 (初学一级) | 2020-12-22 19:15
其他回答(5)
1
不知HttpRuntime.Cache是不是你要找的東東! 其實,HttpContext.Current.Cache本質上就是使用了HttpRuntime.Cache.
Koy | 园豆:205 (菜鸟二级) | 2008-05-06 19:48
winform有httpRuntime吗
支持(0) 反对(0) Virus-BeautyCode | 园豆:1619 (小虾三级) | 2010-03-08 13:51
0
同楼上,直接用HttpRuntime.Cache就行了.
deerchao | 园豆:8367 (大侠五级) | 2008-05-06 20:20
-1
WinForm没有像 HTTP那样的缓存, WinForm运行后,所有数据都会在内存中,根据情况,会释放一部分(GC,垃圾回收) 另外,你要缓存什么?如果是数据库的话,用一个DataSet的就可以了,因为在内存中保存 如果希望关闭程序后也可以,就要将数据保存起来了
G yc {Son of VB.NET} | 园豆:2006 (老鸟四级) | 2008-05-06 22:46
0

在winform用缓存,举个例子我想缓存依赖文件如何里做?webForm是有的。

lxxxxl | 园豆:209 (菜鸟二级) | 2011-02-22 12:08
0

Enterprise Library 5 可以支持WinForm cache

aierong | 园豆:203 (菜鸟二级) | 2012-06-02 14:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册