- Create BackgroundWorker object
- Subscribe to DoWorkEventHandler
- Subscribe to RunWorkerCompletedEventHandler
- In the background worker thread method, assign the value to the property 'Result' of DoWorkEventArgs
- In the RunWorkerCompleted method access the value from the Result property of RunWorkerCompletedEventArgs
namespace My_Samples { using System; using System.ComponentModel; class Program { static void Main(string[] args) { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += new DoWorkEventHandler(worker_DoWork); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); worker.RunWorkerAsync(); for (int i = 0; i < 10; i++) { Console.WriteLine("Main - " + i.ToString()); System.Threading.Thread.Sleep(200); } Console.ReadLine(); } static void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { int result = (int)e.Result; Console.WriteLine("BackgroundWorker thread completed"); Console.WriteLine("Result - " + result.ToString()); } static void worker_DoWork(object sender, DoWorkEventArgs e) { int result = 0; for (int i = 0; i < 10; i++) { Console.WriteLine("worker_DoWork - " + i.ToString()); result += i; System.Threading.Thread.Sleep(100); } e.Result = result; } } }
No comments:
Post a Comment