2010-10-26 1 views
3

.NET для добавления новых функций параллелизма в System.Collection.Concurrent и некоторые классы синхронизации. Есть ли хороший образец для одного производителя - один потребительский шаблон, используя эту функцию? (На самом деле я добавлю к нему круговой буферный шаблон, если он уже не реализует его как общий буфер)Нужен образец шаблона одного производителя/одного потребителя с новыми возможностями .NET 4.0

ответ

2

Новый тип BlockingCollection<T> (see MSDN) реализует шаблон производителя/потребителя. Одновременно к ним могут обращаться несколько производителей/потребителей, но он будет отлично работать с одним производителем и потребителем.

+0

Я читал об этом, но там нет хорошего образца, попробуйте google с «производителем-потребителем .net 4.0». Также он недостаточно гибкий. Например, что, если потребитель хочет уведомить об окончании операции, если отправка не удалась? Что делать, если я не хочу, чтобы пробуждающий продюсер до тех пор, пока половина буфера (BlockingCollection) не станет пустым? – Xaqron