none
Dictionary<TKey,TValue>在网站应用中,多线程与单线程操作分别指哪些情况? RRS feed

答案

  • 您好,

    首先需要了解的是:
    Dictionary<TKey,TValue>是非线程安全的,如果你有多个线程想同时调用这个实例, 你必须要用一些线程访问机制(Lock or Mutual)来让它能够被多线程安全的访问。如果你想要能够线程安全的被访问, 我建议你用ConcurrentDictionary<TKey, TValue>, 它是微软提供的一个线程安全的Dictionary<TKey,TValue>类。它提供的方法都是线程安全的, 例如TryUpdate, TryRemove, TryAdd, TryGetValue等。 也就是说你不必写一些额外的代码去做一些安全的线程访问机制。
    这里有一个关于Dictionary<TKey,TValue>官方的链接: http://msdn.microsoft.com/zh-cn/library/xfhwa508(VS.80).aspx
    这里有一个关于ConcurrentDictionary<TKey, TValue>官方的链接: http://msdn.microsoft.com/zh-cn/library/dd287191.aspx
    这两个链接下面都有代码示例,你可以参考。


    Vin Jin [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已建议为答案 mazhou 2011年4月19日 10:40
    • 已标记为答案 mldarkMember 2011年4月20日 10:11
    2011年4月19日 1:37