How do you pass some parameter to the BackroundWorker thread?

  1. Create BackgroundWorker object
  2. Subscribe to DoWorkEventHandler event handler.
  3. Call the method by passing the object (parameter)


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.RunWorkerAsync(5);
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("Main - " + i.ToString());
                System.Threading.Thread.Sleep(200);
            }

            Console.ReadLine();
        }
        static void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            int counter = (int)e.Argument;
            for (int i = 0; i < counter; i++)
            {
                Console.WriteLine("worker_DoWork - " + i.ToString());
                System.Threading.Thread.Sleep(100);
            }
        }
    }
}

No comments:

Post a Comment