public static UsesBackgroundProducer <T> Consumes <T>(this UsesBackgroundProducer <T> producer, IProducerConsumerCollection <T> collection)
 {
     producer.Attach(new CollectionConsumer <T>(collection));
     return(producer);
 }
 public static UsesBackgroundProducer <T> Consumes <T>(this UsesBackgroundProducer <T> producer, Action <T> @delegate, Consumes <T> forwardTo)
 {
     producer.Attach(new DelegatingConsumer <T>(@delegate, forwardTo));
     return(producer);
 }
 public static UsesBackgroundProducer <T> Consumes <T>(this UsesBackgroundProducer <T> producer, IEnumerable <Consumes <T> > consumers)
 {
     producer.Attach(new CompositeConsumer <T>(consumers));
     return(producer);
 }
 public static UsesBackgroundProducer <T> Consumes <T>(this UsesBackgroundProducer <T> producer, Consumes <T> consumer)
 {
     producer.Attach(consumer);
     return(producer);
 }