concurrency c#-3.0 consumer producer

concurrency - Rápida y mejor técnica de cola de productor/consumidor BlockingCollection versus concurrente Cola



c#-3.0 consumer (1)

Estoy usando Generic.Queue en C # 3.0 y Monitor.Enter, espere, salga de la espera antes de consumir la cola (espere a que el elemento sea en cola). Ahora estoy moviéndome a C # 4.

¿Alguien puede sugerirme cuál es más rápido y mejor especialmente para evitar bloqueos?

BlockingCollection vs concurrentQueue o cualquier otra cosa ...

Nota. No quiero restringir mi productor

Gracias por adelantado..


BlockingCollection y ConcurrentQueue están ahí precisamente por esta razón. Dudo que encuentres algo mejor o más simple de usar. El equipo de extensiones paralelas conoce sus cosas :)

Sin embargo, solo un vistazo rápido a las versiones: ¿definitivamente estás usando .NET 4, no solo C # 4? (Por ejemplo, podría estar usando Visual Studio 2010 y, por lo tanto, C # 4, pero aún teniendo como objetivo .NET 3.5, en cuyo caso no podría usar las extensiones paralelas).

También es posible que desee comenzar a investigar Patrón asincrónico basado en tareas , TPL Dataflow y las características async / await de C # 5 ... obviamente no puede usarlas todavía, pero no está de más saber qué se está acercando.