1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
Imports System.ComponentModel
Public Class Window1
Private myBackgroundWorker As BackgroundWorker
Public Sub New()
InitializeComponent()
myBackgroundWorker = CType(Me.FindResource("backgroundWorker"), BackgroundWorker)
End Sub
Private Sub cmdStartProcess_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
cmdStartProcess.IsEnabled = False
cmdCancelProcess.IsEnabled = True
' limite de la boucle
Dim fromValue, toValue As Integer
' Start on another thread.
fromValue = 1
toValue = 100000000
Dim nombre As New NombresInput(fromValue, toValue)
myBackgroundWorker.RunWorkerAsync(nombre)
End Sub
Private Sub backgroundWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
' Get the input values.
Dim input As NombresInput = CType(e.Argument, NombresInput)
' Start and wait.
WorkerBoucle.ExecuteCalcul(input.StartNumber, input.EndNumber, myBackgroundWorker)
If myBackgroundWorker.CancellationPending Then
e.Cancel = True
Return
End If
End Sub
Private Sub backgroundWorker_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs)
If e.Cancelled Then
MessageBox.Show("Search cancelled.")
ElseIf Not e.Error Is Nothing Then
' An error was thrown by the DoWork event handler.
MessageBox.Show(e.Error.Message, "An Error Occurred")
End If
cmdStartProcess.IsEnabled = True
cmdCancelProcess.IsEnabled = False
progressBar.Value = 0
End Sub
Private Sub backgroundWorker_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs)
progressBar.Value = e.ProgressPercentage
myLabel.Content = e.ProgressPercentage.ToString
myTextBox.Text = e.ProgressPercentage.ToString
End Sub
Private Sub cmdCancelProcess_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
myBackgroundWorker.CancelAsync()
End Sub
End Class |
Partager