c# - 对象的内存缓存

标签 c# caching

我有各种执行长计算的函数类。目前,每次访问函数的结果都意味着重新计算函数。这就是为什么我想在我的解决方案中加入 MemoryCache。但问题是我需要一个 ChangeMonitor 类来监视函数类的更改。我见过监控文件的例子。我的问题是:我需要编写自定义 ChangeMonitor 还是缺少简单的解决方案?

举个简单的例子:

class MyFunction
{
    //I want to monitor changes to these parameters
    private int param1;
    private int param2;

    //This result should be cached
    public int GetResult()
    {
        return param1 * param2;
    }
};

最佳答案

您可以使用 Factory 类来拥有一个单独的类来访问和创建 MyFunction 对象。
然后工厂可以管理和同步包含先前计算的内部字典。
MyFunction 类需要实现 IEquals 并提供哈希函数。在 myClass 内部,您需要添加 private nullable int 结果。

关于c# - 对象的内存缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822090/

相关文章:

c# - 如何使用 emgu cv 捕获视频流

c# - 用于泛型类型层次结构的 DebuggerTypeProxy

python - Google App Engine memcache.Client.cas() 因缺少 key 而不断返回 False

c# - 一起使用 InProc 和 Azure AppFabric 缓存

java - 我可以通过它占用的内存量来限制 HashMap 吗?

c# - 从机器上下文中获取用户全名

c# - 将 unsigned long long 从 C++ 服务器流式传输到 C# 客户端

c# - Azure 服务总线 SubscriptionClient 高延迟/无法同时接收消息

c# - 为什么在从字典中读取时锁定

c# - 根据方法参数生成唯一的缓存键