title: How to split long tasks on different cores?
body: <p>I am newbe in multithreading. I have 4 logical processes on my computer and I want to run 4 equal tasks in threads on 4 different cores. How can i do it?
  I tried to use <code>BackgroundWorker</code> but 4 instances of BackgroundWorker fill only 2 cores of 4 available. 
  My code sample with BackgroundWorker's:</p>
  
  <pre><code>        BackgroundWorker worker = new BackgroundWorker();
          worker.DoWork += new DoWorkEventHandler(worker_DoWork);
          worker.RunWorkerAsync(calculationParams);
          BackgroundWorker worker1 = new BackgroundWorker();
          worker1.DoWork += new DoWorkEventHandler(worker_DoWork);
          worker1.RunWorkerAsync(calculationParams1);
  
          BackgroundWorker worker2 = new BackgroundWorker();
          worker2.DoWork += new DoWorkEventHandler(worker_DoWork);
          worker2.RunWorkerAsync(calculationParams2);
  
          BackgroundWorker worker3 = new BackgroundWorker();
          worker3.DoWork += new DoWorkEventHandler(worker_DoWork);
          worker3.RunWorkerAsync(calculationParams3);
  </code></pre>