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

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • Strata1000

    Strata1000

    28 EYLÜL 2009