title: BackgroundWorker doesn't work Async
body: <p>I made today small test to know more about BackgroundWorker.</p>
  
  <p>In my opinion it doesn't work in asychronuos mode. First it did Do1 and next Do2.
  Do2 is shorter, Do1 takes more time, but program waits for Do1 finished and next start Do2.
  Am I right?
  Thank you!</p>
  
  <pre><code>using System;
  using System.Collections;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Diagnostics;
  using System.Linq;
  using System.Text;
  using System.Threading;
  using System.Threading.Tasks;
  using System.Transactions;
  
  namespace ConsoleApplication16
  {
      public interface I 
     {
          void UstawWiek(string w);
          void PokazWiek(); 
     }
  
      class rrr
      {
  
          public delegate void MojDelegat();
  
          public static void Do1(object sender, DoWorkEventArgs e)
          {
              System.Threading.Thread.Sleep(4000);
              Console.WriteLine("Do1");
          }
  
          public static void Do2(object sender, DoWorkEventArgs e)
          {
              System.Threading.Thread.Sleep(1000);
              Console.WriteLine("Do2");
          }
  
  
          static void Main(string[] args)
          {          
  
             BackgroundWorker bw = new BackgroundWorker();
             bw.DoWork += new DoWorkEventHandler(Do1);
             bw.DoWork += new DoWorkEventHandler(Do2);
             bw.RunWorkerAsync();
  
             int i =0;
             while ( bw.IsBusy)
             {
             Console.WriteLine("Waiting {0}",i);
             System.Threading.Thread.Sleep(100);
             i++;
             }
  
             Console.WriteLine("Done!"); 
             Console.ReadKey();
  
          }
      }     
  }
  </code></pre>