gpt4 book ai didi

c# - T 类型的缓存是否可能?

转载 作者:太空狗 更新时间:2023-10-29 20:28:45 24 4
gpt4 key购买 nike

当将 T 放入缓存时,我们能否避免将其转换为 Object

WeakReference 需要使用对象。 System.Runtime.Caching.MemoryCache 被锁定为类型对象。

自定义字典/集合会导致垃圾收集器出现问题,或者您必须运行自己的垃圾收集器(一个单独的线程)?

有没有可能两全其美?


我知道我已经接受了一个答案,但现在可以使用 Wea​​kReference 了!看起来他们把它偷偷放到了 .Net 4 中。

http://msdn.microsoft.com/en-us/library/gg712911(v=VS.96).aspx


相同的旧功能请求。

http://connect.microsoft.com/VisualStudio/feedback/details/98270/make-a-generic-form-of-weakreference-weakreference-t-where-t-class

最佳答案

没有什么可以阻止您围绕 MemoryCache 编写通用包装器 - 可能需要引用类型的约束:

public class Cache<T> where T : class
{
private readonly MemoryCache cache = new MemoryCache();

public T this[string key]
{
get { return (T) cache[key]; }
set { cache[key] = value; }
}

// etc
}

显然,只值得委托(delegate)您真正感兴趣的 MemoryCache 部分。

关于c# - T 类型的缓存是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6623334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com