WPF thread -- BackgroundWorker, wpf
In WPF, the second common thread processing method is BackgroundWorker.
The following is a simple example of BackgroundWorker.
Public partial class MainWindow: Window {// <summary> /// backend worker /// </summary> BackgroundWorker worker = new BackgroundWorker (); public MainWindow () {InitializeComponent (); worker. workerReportsProgress = true; worker. doWork + = new DoWorkEventHandler (worker_DoWork); worker. progressChanged + = worker_ProgressChanged; this. btn_test.Click + = btn_test_Click ;} /// <summary> /// click the button /// </summary> /// <param name = "sender"> </param> /// <param name = "e"> </param> void btn_test_Click (object sender, routedEventArgs e) {worker. runWorkerAsync ();} /// <summary> /// process the progress returned // </summary> /// <param name = "sender"> </param> /// <param name = "e"> </param> void worker_ProgressChanged (object sender, progressChangedEventArgs e) {this. pb_test.Value = e. progressPercentage ;} /// <summary> /// business logic processing /// </summary> /// <param name = "sender"> </param> /// <param name = "e"> </param> void worker_DoWork (object sender, doWorkEventArgs e) {for (int I = 0; I <= 100; I ++) {worker. reportProgress (I); // return the progress Thread. sleep (100 );}}}
Note that the WorkerReportsProgress attribute of BackgroundWorker indicates whether the BackgroundWorker can return the progress. ProgressChanged is responsible for updating interface operations.
Project hosting address: https://wpfthread.codeplex.com/