草庐IT

clear_cache

全部标签

c# - 安排每天在特定时间刷新 HttpContext.Cache 的任务

我有一个正在运行的MVC3c#网站,它从网络服务中提取记录。随着它从web服务获取的数据集变得越来越大,我正在寻找一种方法来创建它的缓存,而不是在没有当前缓存的情况下由第一个访问该站点的用户触发,而是按每日计划(如cron作业、计划任务等)。我应该怎么做?我是否需要某种触发器库,如Quartz.net?(我宁愿使用更简单的解决方案)现在我的Controller中有:privateListGetSummaries(){//getsummariesfromcacheifavailableListsummaries=(List)HttpContext.Cache["SummariesCach

c# - MVC 5 : Custom AuthorizeAttribute and Caching

我试图通过从中派生并覆盖其某些方法来找到实现自定义System.Web.Mvc.AuthorizeAttribute的解决方案。我正在尝试的每一种方法,我都面临着MVC5的默认授权机制中的某些问题,这使我无法正确扩展它。我已经在SO和许多专用资源上对该领域进行了大量研究,但是我无法像我目前的场景那样为这种场景找到可靠的解决方案。第一个限制:我的授权逻辑需要额外的数据,例如Controller和方法名称以及应用于它们的属性而不是HttpContextBase能够提供的有限部分数据。例子:publicoverridevoidOnAuthorization(AuthorizationCont

c# - .NET : Output caching for WebMethod?

我可以缓存WebMethod输出的返回值吗?例如。如果在最后X秒或分钟内调用了WebMethod,则实际上不要再次运行该方法——只需使用与上次提供的结果相同的结果。或者我应该在类/WebMethod内部滚动自己的缓存吗? 最佳答案 您可以使用CacheDurationWebMethod属性的参数,用于指定将请求的输出缓存给定的时间量。[WebMethod(CacheDuration=60)]以上代码将使您的网络方法将其结果缓存60秒。 关于c#-.NET:Outputcachingfor

c# - Controls.Clear() 清理多深?

我正在使用一个TableLayoutPanel,它动态填充了其他TablelayoutPanel。现在我想知道当我在动态填充的TableLayoutPanel上调用TableLayoutPanel.Controls.Clear时会发生什么。显然,所有的子布局都被移除了,但是他们的子布局呢?它们是否也得到妥善处理,还是我需要担心内存泄漏?我应该在调用Clear()之前递归地删除child的child吗? 最佳答案 Clear不处理控件,导致内存泄漏。来自链接:CallingtheClearmethoddoesnotremovecont

c# - System.Runtime.Caching 中是否存在某种 CacheDependency?

我听说.NET4有一个新的缓存API。好的,旧的System.Web.Caching.Cache(顺便说一句,.NET4中仍然存在)能够设置所谓的CacheDependency对象以确定缓存项是否过期。还可以通过从CacheDependency派生自定义子类来指定用于确定缓存项是否仍然可用的自定义逻辑。我很好奇,有没有办法在新API中提供这样的逻辑? 最佳答案 我还没有真正使用过它,但是从ChangeMonitorClass派生的类似乎服务于类似的目的。 关于c#-System.Runt

c# - HttpContext.Current.Cache 是线程安全的吗?

请检查下面的代码:objDDLTable=HttpContext.Current.Cache["TestSet"]asHashtable;if(objDDLTable==null){objDDLTable=newHashtable();arrDDLItems=GetDropDownList("testDropDown");objDDLTable.Add("testDropDown",arrDDLItems);HttpContext.Current.Cache["TestSet"]=objDDLTable;}elseif(objDDLTable!=null&&!objDDLTable.C

c#控制台,Console.Clear问题

我正在用C#编写控制台程序。有没有一种方法可以使用Console.Clear()来仅清除控制台屏幕上的某些内容?这是我的问题:我有一个Logo(我使用Console.WriteLine()将它放在屏幕上)和一个二维数组,我想保持不变并清除其下方的所有内容。 最佳答案 您可以使用自定义方法来清除部分屏幕...staticvoidClear(intx,inty,intwidth,intheight){intcurTop=Console.CursorTop;intcurLeft=Console.CursorLeft;for(;height

c# - WPF 数据网格 : Clear column sorting

我在我的应用程序中使用WPF数据网格,可以通过单击标题对列进行排序。我想知道是否有任何方法可以以编程方式清除列的排序?我尝试对一列进行排序,然后清除MyDataGrid.Items.SortDescriptions,但该集合为空(即使对一列进行了排序)。我也试过:MyDataGridColumn.SortDirection=null;问题是列指示消失了,但是在编辑单元格和切换行时排序仍然出现。有没有办法清除列的排序?编辑(为清楚起见):问题是如果用户重新单击同一列标题,我想允许再次排序,因此将CanUserSort设置为false会有问题,即使它是在XAML中完成的.简而言之,我正在尝

c# - System.Runtime.Caching.MemoryCache 的通用实现

MemoryCache是否有任何通用的替代方案/实现?我知道MemoryCache在底层使用Hashtable,所以只需转换为使用Dictionary,这是Hashtable的通用版本。这将提供类型安全并提供性能优势,因为无需装箱/拆箱。编辑:我感兴趣的另一件事是使用不同的key类型。默认值为System.String。 最佳答案 Isthereanygenericalternative/implementationforMemoryCache?不在基类库中。你必须自己动手,但就我个人而言,我只会围绕MemoryCache做一个包装

c# - 查看缓存在System.Web.HttpRuntime.Cache中的数据

是否有任何工具可用于查看HttpRunTime缓存中的缓存数据..?我们有一个Asp.Net应用程序,它正在将数据缓存到HttpRuntime缓存中。给定的默认值是60秒,但后来更改为5分钟。但是感觉缓存的数据在5分钟之前就刷新了。不知道下面发生了什么。是否有任何可用的工具或我们如何查看缓存在HttpRunTime缓存中的数据……以及过期时间……?以下代码用于将项目添加到缓存。publicstaticvoidAdd(stringpName,objectpValue){intcacheExpiry=int.TryParse(System.Configuration.Configurati