Bir BlockingCollection içinde bir ConcurrentDictionary uygulamaya çalışıyorum ama başarılı görünmüyordu.BlockingCollection'da ConcurrentDictionary nasıl sarılır?
BlockingCollection<int> bag = new BlockingCollection<int>(new ConcurrentBag<int>());
:
ben böyle beyan ve örneğini olurdu bir değişken bildirimleri Yani, bir BlockingCollection sarılmış bir ConcurrentBag oluşturmak vb BlockingCollection gibi ConcurrentBag<T>
, ConcurrentQueue<T>
ile
çalışmak olduğunu anlamak ama ConcurrentDictionary için nasıl yapılır? Hem üretici hem de tüketici tarafında BlockingCollection'ın engelleme işlevine ihtiyacım var.
Sözlük (ve ConcurrentDictionary da), öğelerin sırasını korumaz. Üretici-tüketici senaryosunu tarif edebilir misiniz? – Dennis
@Dennis, Bunun farkındayım. Bir üretici, concurrentDictionary içinde KeyValuePairs depolar ve bir tüketici görevi bir int artar ve int, ilgili anahtarla eşleşiyorsa KeyValuePair'i kaldırır. Bunu yaparım çünkü çalışan görevleri concurrentDictionary değerini değerlerle doldurur, ancak rasgele sırayla, tüketici görevi alınan değerlerin doğru sırada çalışmasını/çalışmasını sağlar. ConcurrentDictionary bir BlockingCollection içinde sarılabilir mi? –
Hangi çözümle geldiniz? Üreticinin tüketici tarafından ihtiyaç duyulan sırada ürün üretmediği benzer bir soruna iyi bir çözüm bulmaya çalışıyorum. (biliyorum eski mesaj, ama denemeye değer) – Kim