SORU
1 EKİM 2008, ÇARŞAMBA


Ne'In thread-safe Sözlük?uygulamak için en iyi yolu

C evresel bir Sözlük uygulamak mümkün oldu# C türetmek ve özel SyncRoot bir nesne tanımlayarak:

public class SafeDictionary<TKey, TValue>: IDictionary<TKey, TValue>
{
    private readonly object syncRoot = new object();
    private Dictionary<TKey, TValue> d = new Dictionary<TKey, TValue>();

    public object SyncRoot
    {
        get { return syncRoot; }
    } 

    public void Add(TKey key, TValue value)
    {
        lock (syncRoot)
        {
            d.Add(key, value);
        }
    }

    // more IDictionary members...
}

O zaman benim tüketicilerin (çoklu iş parçacığı) boyunca bu SyncRoot nesne üzerinde kilit

Örnek:

lock (m_MySharedDictionary.SyncRoot)
{
    m_MySharedDictionary.Add(...);
}

O iş yapmak mümkün değildi, ama bu çirkin bir kod sonuçlandı. Benim sorum, iş parçacığı için güvenli bir Sözlük uygulama, daha zarif, daha iyi bir yolu var mı?

CEVAP
13 EYLÜL 2010, PAZARTESİ


.Eşzamanlılık destekleyen NET 4.0 sınıf ConcurrentDictionary olarak adlandırılır

http://msdn.microsoft.com/en-us/library/dd287191.aspx

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BgirlNilaya

    BgirlNilaya

    29 EKİM 2008
  • Missouri Star Quilt Company

    Missouri Sta

    18 ŞUBAT 2009
  • Pocketnow

    Pocketnow

    14 EKİM 2007