【问题标题】:Is lock required for single writer situation? [duplicate]单写情况需要锁吗? [复制]
【发布时间】:2017-08-15 15:30:39
【问题描述】:

我正在使用带有 C# 的 .netcore,我有一个 System.Collections.Generic.Dictionary<>,它由多个任务共享和访问,但只有一个任务正在写入和更新键值对,以及所有其他任务(不止一个)只是从字典中阅读。在这种情况下,我是否需要使用锁来保护它,就线程安全而言?

【问题讨论】:

    标签: c# dictionary locking .net-core


    【解决方案1】:

    是的。 Dictionary 在写入过程中无法安全读取;内部数据存储未处于有效状态,因此可能会出现异常或无意义的结果。

    【讨论】:

    • 好的,要解决这个问题,lock 或 concurrentditionary 是更好的选择吗?
    • @fluter 这由您决定。如果使用得当,两者都可以解决这个问题。
    【解决方案2】:

    请改用ConcurrentDictionary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      相关资源
      最近更新 更多