3

我有各种执行长计算的函数类。目前,每次访问函数的结果都意味着重新计算函数。这就是我想在我的解决方案中加入 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;
    }
};
4

2 回答 2

0

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

于 2012-10-10T14:58:41.300 回答
0

感谢所有的答案。

我意识到如果我想使用 ChangeMonitor 类,我必须扩展它来监控内存段。在我的情况下,更好的解决方案是提醒缓存函数结果已更改。我通过向 MyFunction 类添加方法“Reset”来做到这一点。每次参数更改时,我都会调用重置函数,这将使缓存无效。

于 2012-10-15T14:19:00.790 回答