title: Publisher/Subscriber in LINQ?
body: <p><strong>Problem:</strong></p>
  
  <pre><code>    IEnumerable&lt;Signal&gt; feed = GetFeed();
  
  var average1 = feed.MovingAverage(10);
  var average2 = feed.MovingAverage(20);
  
  var zipped = average1.Zip(average2, (x,y) =&gt; Tuple.Create(x,y));
  </code></pre>
  
  <p>When I iterate through "zipped", GetFeed().GetEnumerator() gets called twice and creates all sorts of synchronization issues. Is there a LINQ operator that can be used to broadcast values from single producer to multiple consumers? I know about Memoize, but in my case I can't predict buffer size to keep slow and fast consumers "happy".</p>
  
  <p>I am thinking about writing my own operator that would keep separate queues for each consumer, but wanted to check if there is an existing solution.</p>