合集-多线程
摘要:谨慎使用 C# 中的 ConcurrentDictionary.Values 在多线程开发中,ConcurrentDictionary 是一个非常重要的数据结构,它提供了线程安全的字典操作。然而,在使用其 Values 属性时,我们需要格外小心,特别是在处理大数据量的场景中。本文通过一个示例程序分析
阅读全文
摘要:C# 两大线程本地存储解决方案:ThreadStatic 与 ThreadLocal 一、线程本地存储 在 C# 中,static 关键字定义的变量,其作用域是在应用程序域(AppDomain)内共享的。因此,在多线程操作时,对同一个静态变量进行操作可能会导致并发问题,如锁竞争等。这种情况下,我们需
阅读全文
摘要:ConcurrentDictionary 是 C# 中非常强大的线程安全集合之一,尤其是在多线程场景下表现出色。然而,它的 GetOrAdd(TKey key, Func<TKey, TValue> valueFactory) 方法在特定情况下会多次执行 valueFactory,这可能导致额外的性
阅读全文
摘要:我们经常会使用 List<T> 作为数据存储容器。但在某些特殊场景下,List.Insert 方法可能会引发严重的性能问题,例如 CPU 占用率飙升。 示例程序 以下是一个简单的控制台程序,模拟在 List 的开头不断插入数据: internal class Program { static voi
阅读全文