代码之家  ›  专栏  ›  技术社区  ›  SDReyes

A.net4 gem:当前的分节-提示和技巧

  •  12
  • SDReyes  · 技术社区  · 15 年前

    我开始使用来自.net4的新ConcurrentDictionary来实现线程项目的简单缓存。

    但是我想知道在使用它的时候我必须注意什么?

    你使用它有什么经验?

    3 回复  |  直到 13 年前
        1
  •  20
  •   to StackOverflow    15 年前

    成员是线程安全的,但您不应该期望一系列调用是线程安全的。例如,您不能期望以下内容是线程安全的:

    if (!dictionary.ContainsKey(key))
    {
        // Another thread may have beaten you to it
        dictionary.Add(key, value);
    }
    

    相反,使用新的线程安全API-例如 AddOrUpdate (最后一个在比赛条件下获胜)或 GetOrAdd (第一个在比赛条件下获胜)。

        2
  •  2
  •   ChaosPandion    15 年前

    到目前为止,我对并发集合对象没有任何问题。通过允许我 担心集合的并发性问题,并专注于编写应用程序逻辑。

    这并不是说没有问题。我什么都没碰到。

        3
  •  -1
  •   Tom Cabanski    15 年前

    ConcurrentDictionary是线程安全的。即使从多个线程使用它,也不必担心它。