Page 149 - CSharp/C#
P. 149

// Work to be done here
                 // ...
                 // To get a reference to the current Backgroundworker:
                 BackgroundWorker worker = sender as BackgroundWorker;
                 // The reference to the BackgroundWorker is often used to report progress
                 worker.ReportProgress(...);
             }

             /*This is the method that will be run once the BackgroundWorker has completed its tasks */

             bgWorker.RunWorkerCompleted += bgWorker_CompletedWork;

             /*This is how the RunWorkerCompletedEvent event method signature looks like:*/
             private void bgWorker_CompletedWork(object sender, RunWorkerCompletedEventArgs e)
             {
                 // Things to be done after the backgroundworker has finished
             }

            /* When you wish to have something occur when a change in progress
              occurs, (like the completion of a specific task) the "ProgressChanged"
              event handler is used. Note that ProgressChanged events may be invoked
              by calls to bgWorker.ReportProgress(...) only if bgWorker.WorkerReportsProgress
              is set to true.  */

              bgWorker.ProgressChanged += bgWorker_ProgressChanged;

             /*This is how the ProgressChanged event method signature looks like:*/
             private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
             {
                 // Things to be done when a progress change has been reported

                 /* The ProgressChangedEventArgs gives access to a percentage,
                  allowing for easy reporting of how far along a process is*/
                 int progress = e.ProgressPercentage;
             }


        Assigning Properties to a BackgroundWorker


        This allows the BackgroundWorker to be cancelled in between tasks


         bgWorker.WorkerSupportsCancellation = true;


        This allows the worker to report progress between completion of tasks...


         bgWorker.WorkerReportsProgress = true;

         //this must also be used in conjunction with the ProgressChanged event


        Creating a new BackgroundWorker instance


        A BackgroundWorker is commonly used to perform tasks, sometimes time consuming, without
        blocking the UI thread.


         // BackgroundWorker is part of the ComponentModel namespace.
         using System.ComponentModel;



        https://riptutorial.com/                                                                               95
   144   145   146   147   148   149   150   151   152   153   154