title: C# Parallel - Adding items to the collection being iterated over, or equivalent?
body: <p>Right now, I've got a C# program that performs the following steps on a recurring basis:</p>
  
  <ul>
  <li>Grab current list of tasks from the database</li>
  <li>Using Parallel.ForEach(), do work for each task</li>
  </ul>
  
  <p>However, some of these tasks are very long-running. This delays the processing of other pending tasks because we only look for new ones at the start of the program.</p>
  
  <p>Now, I know that modifying the collection being iterated over isn't possible (right?), but is there some equivalent functionality in the C# Parallel framework that would allow me to add work to the list while also processing items in the list?</p>