问题标签 [objectcache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 功能DoSomething:类型 [...] Controller+<>c__DisplayClass0_0 未标记为可序列化
我正在尝试实现基于 ObjectCache 的FileCache ( https://github.com/acarteas/FileCache )。我正在尝试检查缓存对象是否存在,或者在需要时添加它并返回。但是,当对象不存在时,不会执行委托并引发错误: [...] 中的类型“myNamespace.Controllers.ListController+<>c__DisplayClass0_0”未标记为可序列化。
我尝试过的(简化):
好的,现在我尝试使用 Serializable 指定委托 createString,但这不起作用。有人能指出我正确的方向吗?
本质上我想要: - 运行一个返回 generateString(123) 的先前输出的语句;如果它不存在或过期,它应该重新生成它。
感谢您的任何提示!
c# - 我可以在 ObjectCache 中存储 System.Timers.Timer 以供以后访问吗?
我需要为我的工作实现以下要求。
- 当用户启动一个新应用程序时,一个 5 分钟的计时器开始计时。
- 如果用户在 5 分钟结束之前对应用程序进行了任何编辑,则计时器将被取消。
- 如果计时器运行完毕,则会向我们公司发送一封电子邮件(“创建了一个应用程序但已放弃”)。
此项目的 Web 服务器是一个 .NET MVC 项目,但除了 Home Controller 之外,所有控制器都继承自 System.Web.Http.ApiController 而不是 System.Web.Mvc.Controller。前端是Angular 6。
启动一个 5 分钟计时器似乎很容易,它将在 5 分钟后执行“电子邮件发送”方法。如果用户在计时器用完之前编辑应用程序,我就无法实现取消计时器的功能。启动应用程序和任何后续编辑的命令将作为对 API 的单独查询,因此我没有从调用到调用维护任何状态。
我目前的想法是在应用程序启动时通过 System.Timers.Timer 创建计时器,并将计时器存储在代表该特定应用程序的唯一 ID 下的 ObjectCache 中。然后,当调用编辑操作时,我可以检查缓存以查看是否存储了与正在编辑的应用程序匹配的计时器,如果是,则取消计时器。如果在 5 分钟内没有接到这样的电话,计时器将触发并发送电子邮件。
这行得通吗?(两者都能够访问定时器来取消它,如果没有取消,定时器会按预期触发?)是否有更好或更适合 .NET 的方法来实现此要求?为这个问题的模糊范围道歉;尽管我不熟悉使用计时器可能会阻碍我的搜索,但我在 Google 或搜索 SO 方面没有运气。
谢谢!
c# - 内存缓存在 .Net Framework 4 中不起作用
我的项目是建立在 .Net Framework 4.0 上的,我们使用的是内置的ObjectCache
,MemoryCache
它是在 .Net 中实现的System.Runtime.Caching
。
它以前工作正常,但突然停止在缓存中保存任何内容。当我在缓存上调用Set
方法时,它不会保存任何内容,并且Result View
始终为空,说明Enumeration yielded no results
. 我仔细检查了代码,发现那里没有任何问题。这真的很简单,如下所示:
但是,在同一台机器上针对 .Net Framework 4 的示例应用程序可以工作。我想知道是否有其他人经历过类似的行为,我怎样才能找到这个问题的核心?有什么工具可以提供帮助吗?
c# - 在 .NET 中,为什么 ObjectCache 是 MemoryCache 的首选类型?
在 .NET 中使用内存缓存的许多 示例(包括官方文档)将其实例化为:
有什么理由更喜欢这个:
memorycache - When I use ObjectCache cache many threads are started
In c#, Why when I use ObjectCache cache = MemoryCache.Default;
many threads are started?
Note: Everything works perfectly, performance is not degraded, there are no errors.
Only many therad that finish fast are automatically started.