Using a BackgroundWorker: progress changed and completed
<Window x:Class="BackgroundWorkerExample.MyWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="BackgroundWorkerExample" Height="300" Width="300"> <Grid> </Grid> </Window> //File:Window.xaml.vb Imports System Imports System.Collections.Generic Imports System.Text Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Data Imports System.Windows.Documents Imports System.Windows.Input Imports System.Windows.Media Imports System.Windows.Media.Imaging Imports System.Windows.Shapes Imports System.ComponentModel Imports System.Threading Namespace BackgroundWorkerExample Partial Class MyWindow Inherits Window Private bw As New BackgroundWorker() Public Sub New() AddHandler bw.DoWork, New DoWorkEventHandler(AddressOf bw_DoWork) AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted bw.WorkerReportsProgress = True bw.RunWorkerAsync() End Sub Private Sub bw_DoWork(sender As Object, e As DoWorkEventArgs) For i As Integer = 0 To 9 Dim percent As Integer = i * 10 bw.ReportProgress(percent) Thread.Sleep(1000) Next End Sub Private Sub bw_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Me.Title = "Working: " & e.ProgressPercentage & "%" End Sub Private Sub bw_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Me.Title = "Finished" End Sub End Class End Namespace
1. | Use BackgroundWorker to run task at background |