12得票1回答
ConcurrentDictionary + Lazy -- 实例化只会发生一次吗?

场景 假设我们有以下内容: var dictionary = new ConcurrentDictionary<string, Lazy<Heavy>>(); 实例化Heavy非常耗费资源。让我们考虑以下代码: return dictionary.GetOrA...

12得票6回答
线程安全的类似字典的集合,具有上限。

我需要一个具有以下属性的集合: 线程安全:它将在asp.net中使用,多个客户端可以同时尝试添加、删除和访问成员 最大元素数:我希望能够在构造时设置上限,即最大元素数 TryAdd:一个与 BlockingCollection<T>.TryAdd(T) 相同的方法将是完美的,即...

12得票2回答
Redis相较于C#字典的优势

我想知道Redis及其C#客户端相比于Dictionary/ConcurrentDictionary的优势在哪里,以及何时使用Redis被认为是过度设计。 谢谢。

11得票2回答
我该如何告诉`ConcurrentDictionary.GetOrAdd`不要添加值?

我有几个场景需要使用 ConcurrentDictionary<TKey, TValue> 来缓存值,但通常情况下,需要对值进行验证来决定是否使用 ConcurrentDictionary<TKey, TValue>.GetOrAdd(TKey, Func<TKe...

11得票1回答
.NET ConcurrentDictionary.ToArray() 参数异常

有时候当我调用ConcurrentDictionary.ToArray时,会出现以下错误。错误如下: System.ArgumentException: 索引等于或大于数组长度,或字典中的元素数量大于从索引到目标数组末尾的可用空间。 at System.Collections.Co...

11得票2回答
使用ConcurrentDictionary时的一些问题

我目前正在编写一个C#应用程序。我是使用ConcurrentDictionary的新手,所以我对它的线程安全性有一些疑问。首先,这是我的字典: /// <summary> /// A dictionary of all the tasks scheduled ...

11得票1回答
ConcurrentDictionary的ContainsKey方法是否同步?

简单的问题 假设我有一个ConcurrentDictionary 我使用TryAdd和ContainsKey方法 现在假设我有100个线程在处理任务。当3个线程使用TryAdd方法添加新键时,另外3个线程使用ContainsKey方法查询该键是否存在。 ContainsKey方法会等待那...

11得票3回答
需要一个高效的内存缓存,每秒能够处理4k到7k个查找或写入操作。

我有一个高效的C#应用程序,以多线程CPU的速率接收每秒5k到10k条记录的80字节数据。 现在我需要设置一个内存缓存来检测和过滤重复记录,以便将它们从管道中进一步抑制。 缓存规格(最大阈值): - 80字节的数据 - 10,000条/秒 - 60秒的缓存=密钥数量= 60,000 - ...

11得票3回答
ConcurrentDictionary.GetOrAdd - 仅在值为null时添加

我正在使用ConcurrentDictionary来缓存数据以进行并行访问,有时候新的项目可能会被存储在数据库中,但它们没有被加载到缓存中。这就是我使用GetOrAdd的原因。 public User GetUser(int userId) { return _user.GetOr...

11得票3回答
ConcurrentDictionary.GetOrAdd()可以递归调用吗?

ConcurrentDictionary.GetOrAdd(TKey, Func<TKey, TValue>)方法接受一个工厂函数,以允许对要放入字典中的项进行延迟初始化。 定义一个工厂函数,该函数本身调用GetOrAdd()是否安全,即在“父” GetOrAdd() 的上下文中...