Estoy jugando con la idea de implementar un gen Productor/Consumidor + cola de procesamiento en C# por diversión. La idea es que solo pueda crear objetos que implementen las interfaces IProducer e IConsumer apropiadas (se proporcionan las implementaciones predeterminadas), que consistirán principalmente de delegados, las pasarán a una instancia de clase QueueProcessor
, le dirán cuántos consumidores desea y se irán.Genérico .Net Productor/Consumidor
Pero me digo a mí mismo: "Sí, seguramente esto ya se ha hecho antes".
Así que ¿alguien sabe de un buen , genérica implementación del patrón de productor/consumidor en C# (VB.Net está bien, también)? Los requisitos básicos que estoy buscando:
- Use genéricos para los tipos producidos y consumidos (de entrada, en la cola de tareas y tipos de salida, o cualquier combinación de los mismos)
- le permiten especificar cuántos consumidores va a funcionar el cola de
- permitirá enlazar hacia arriba o cadena de múltiples colas en una tubería (complicados con múltiples consumidores, lo sé)
- le permiten implementar sus propios productores y consumidores
- permitirá convertir cualquier IEnumerable en un productor (está bien si tengo que implementarlo yo mismo, siempre y cuando sea es posible)
- Delegado basada (se puede utilizar la sintaxis lambda para el consumidor o productor trabajo básico para procesar un solo elemento)
O si no la hay, qué errores ha impedido y tiene usted alguna idea de cómo implementarlo?
¿Ha mirado http://msdn.microsoft.com/en-us/library/dd267312.aspx? – porges
Sí, e IProducerConsumerCollection, pero aún no existía nada de eso cuando hice la pregunta por primera vez. Escribe una publicación sobre el soporte en 4.0 y recibirás un voto favorable rápido de mi parte. –
Argh! No sé cómo sigue sucediendo esto ... Siempre termino con mensajes de hace 2 años: P – porges