title: Collection Next Element
body: <p>I have a method to download a picture, a list of pictures to be downloaded, and multiple background workers.</p>
  
  <p>The way I have it worked out now, I divide my collection in two, and loop through with each background worker.</p>
  
  <p>My question is, how can I have 2 or more background workers pulling from the same collection, without them stepping on each other.</p>
  
  <pre><code>List&lt;string&gt; Urls = new List&lt;string&gt;(Pretend I Added 50 URL'S);
  List&lt;string&gt; Urls1 = new List&lt;string&gt;();
  List&lt;string&gt; Urls1 = new List&lt;string&gt;();
  
  Urls1.Add(Urls.GetRange(0,25);
  Url2.Add(Urls.GetRange(26,50);
  
  BackgroundWorker bwImageDownload1 = new BackgroundWorker();
  
          bwImageDownload1.DoWork += delegate(object sender, DoWorkEventArgs e)
          {
              foreach(string item in Urls1.Items)
              {
                DownloadPicture(item);
              }
          };
  
  
          bwImageDownload1.RunWorkerAsync();
  
  BackgroundWorker bwImageDownload2 = new BackgroundWorker();
  
          bwImageDownload2.DoWork += delegate(object sender, DoWorkEventArgs e)
          {
              foreach(string item in Urls2.Items)
              {
                DownloadPicture(item);
              }
          };
  
  
          bwImageDownload2.RunWorkerAsync();
  </code></pre>