BackgroundWorker Demo : Background Worker « GUI « VB.Net

BackgroundWorker Demo

BackgroundWorker Demo
Imports System
Imports System.Data
Imports System.Collections
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Data.SqlClient

public class MainClass
   Shared Sub Main()
       Dim form1 As Form = New Form1
   End Sub
End Class

Public Class Form1
    ' Start the long process.
    Private Sub btnStartProcess_Click(ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles btnStartProcess.Click
        ' Get ready.
        btnStartProcess.Enabled = False
        btnCancel.Enabled = True
        prgLongProcess.Value = 0

        ' Start the worker.
        bgrLongProcess.WorkerReportsProgress = True
        bgrLongProcess.WorkerSupportsCancellation = True
    End Sub

    ' Cancel the long process.
    Private Sub btnCancel_Click(ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles btnCancel.Click
    End Sub

    ' Display the progress.
    Private Sub bgrLongProcess_ProgressChanged(ByVal sender As Object, _
     ByVal e As System.ComponentModel.ProgressChangedEventArgs) _
     Handles bgrLongProcess.ProgressChanged
        prgLongProcess.Value = e.ProgressPercentage
    End Sub

    ' The worker is done.
    Private Sub bgrLongProcess_RunWorkerCompleted(ByVal sender As Object, _
     ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) _
     Handles bgrLongProcess.RunWorkerCompleted
        btnStartProcess.Enabled = True
        btnCancel.Enabled = False
    End Sub

    Private Sub bgrLongProcess_DoWork(ByVal sender As Object, _
     ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgrLongProcess.DoWork
        For i As Integer = 1 To 10000

            For j As Integer = 1 To 10000

            Next j
            If bgrLongProcess.CancellationPending Then Exit Sub

            bgrLongProcess.ReportProgress(CInt(100 * i / 10000))
        Next i
    End Sub

End Class

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Public Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso components IsNot Nothing Then
        End If
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.btnStartProcess = New System.Windows.Forms.Button
        Me.btnCancel = New System.Windows.Forms.Button
        Me.prgLongProcess = New System.Windows.Forms.ProgressBar
        Me.bgrLongProcess = New System.ComponentModel.BackgroundWorker
        Me.btnStartProcess.Location = New System.Drawing.Point(8, 8)
        Me.btnStartProcess.Name = "btnStartProcess"
        Me.btnStartProcess.Size = New System.Drawing.Size(75, 23)
        Me.btnStartProcess.TabIndex = 0
        Me.btnStartProcess.Text = "Start"
        Me.btnCancel.Location = New System.Drawing.Point(208, 8)
        Me.btnCancel.Name = "btnCancel"
        Me.btnCancel.Size = New System.Drawing.Size(72, 24)
        Me.btnCancel.TabIndex = 1
        Me.btnCancel.Text = "Cancel"
        Me.prgLongProcess.Location = New System.Drawing.Point(8, 48)
        Me.prgLongProcess.Name = "prgLongProcess"
        Me.prgLongProcess.Size = New System.Drawing.Size(272, 16)
        Me.prgLongProcess.TabIndex = 2
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(288, 75)
        Me.Name = "Form1"
        Me.Text = "UseBackgroundWorker"

    End Sub
    Friend WithEvents btnStartProcess As System.Windows.Forms.Button
    Friend WithEvents btnCancel As System.Windows.Forms.Button
    Friend WithEvents prgLongProcess As System.Windows.Forms.ProgressBar
    Friend WithEvents bgrLongProcess As System.ComponentModel.BackgroundWorker

End Class


Related examples in the same category