【问题标题】:CacheManager and DisposeCacheManager 和 Dispose
【发布时间】:2015-04-03 22:31:02
【问题描述】:

我将使用 CacheManager 来处理我的缓存。 我什么时候必须处理它?

是否意味着每次我使用 using 语句访问缓存时都会创建它?

在这种情况下,我每次都必须编写初始化?

var cache = CacheFactory.Build("cache1", settings =>
{
    settings
        .WithSystemRuntimeCacheHandle("handle1")
            .EnablePerformanceCounters()
            .WithExpiration(ExpirationMode.Absolute, TimeSpan.FromMinutes(10));
});

或者我应该如何使用/处置它?我实际上收到了我应该处理它的代码分析警告。

【问题讨论】:

  • 我确实认为你会丢弃它,因为它会被自动处理。也许我们可以在 application_shutdown 中处理

标签: c# caching dispose cachemanager


【解决方案1】:

答案是否定的;)

您不想释放 CacheManager 实例。更常见的做法是在应用程序中保留它的静态实例,并且只创建一次 CacheManager。

这是因为创建 CacheManager 和创建缓存客户端实例并可能打开与分布式缓存的连接的句柄非常昂贵且只能执行一次。从那时起,它应该可以作为静态参考工作并保持不变。

简单地使用 IoC 容器并将其注册为单例也是一个好习惯。然后 IoC 容器可能会为您处理处置。

是否意味着每次我使用 using 语句访问缓存时都会创建它?

不,不应该这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多