小编Hon*_*vak的帖子

在线程之间在字典中共享数据

假设代码:

class Memory {
  Dictionary<int, int> m_values;
  Object lockObject = new Object();

  public int GetData(int key) {
    int result;
    lock (lockObject) {
      if (!m_values.TryGetValue(key, out result)) {
        result = VeryExpensiveComputationMethod(key);
        m_values[key] = result;
      }
    }
    return result
  }
}
Run Code Online (Sandbox Code Playgroud)

这是安全的,但问题是它不是很有效.有些人想过如何使用与.NET 2.0兼容的代码更好地做到这一点?(在最佳方案中,只有等待相同键的相同结果的线程才应该等待)

c# multithreading dictionary

2
推荐指数
1
解决办法
762
查看次数

标签 统计

c# ×1

dictionary ×1

multithreading ×1