好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SynchronizedDictionary线程安全的泛型版本

SynchronizedDictionary线程安全的泛型版本

Code
using  System.Collections.Generic;

namespace  Amib.Threading.Internal
{
     internal   class  SynchronizedDictionary < TKey, TValue >
    {
         private   readonly  Dictionary < TKey, TValue >  _dictionary;
         private   readonly   object  _lock;

         public  SynchronizedDictionary()
        {
            _lock  =   new   object ();
            _dictionary  =   new  Dictionary < TKey, TValue > ();
        }

         public   int  Count
        {
             get  {  return  _dictionary.Count; }
        }

         public   bool  Contains(TKey key)
        {
             lock  (_lock)
            {
                 return  _dictionary.ContainsKey(key);
            }
        }

         public   void  Remove(TKey key)
        {
             lock  (_lock)
            {
                _dictionary.Remove(key);
            }
        }

         public   object  SyncRoot
        {
             get  {  return  _lock; }
        }

         public  TValue  this [TKey key]
        {
             get
            {
                 lock  (_lock)
                {
                     return  _dictionary[key];
                }
            }
             set
            {
                 lock  (_lock)
                {
                    _dictionary[key]  =  value;
                }
            }
        }

         public  Dictionary < TKey, TValue > .KeyCollection Keys
        {
             get
            {
                 lock  (_lock)
                {
                     return  _dictionary.Keys;
                }
            }
        }

         public  Dictionary < TKey, TValue > .ValueCollection Values
        {
             get
            {
                 lock  (_lock)
                {
                     return  _dictionary.Values;
                }
            }
        }
         public   void  Clear()
        {
             lock  (_lock)
            {
                _dictionary.Clear();
            }
        }
    }
}

非本人原创,所有泛型集合类都是非线程安全的,大家需要自己处理,例子共大家参考吧

查看更多关于SynchronizedDictionary线程安全的泛型版本的详细内容...

  阅读:36次

上一篇: 忙话codesmith

下一篇:自制定长的Queue