 <p>You're not assigning the event handlers to the <code>BackgroundWorker</code> events:</p> <pre><code> static void Main(string[] args) { worker = new BackgroundWorker(); worker.DoWork += Worker_DoWork; //here worker.ProgressChanged += Worker_ProgressChanged; //and here worker.WorkerReportsProgress = true; worker.RunWorkerAsync(); Console.ReadLine(); } </code></pre> <p>Cheers</p>