Execute a Method Asynchronously Using a Background Worker Thread
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WPF" Width="240" Height="140" >
<StackPanel>
<Button Click="Start_Click" Name="btnStart">Start</Button>
<TextBlock Name="txtBiggestPrime"/>
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.Windows
Imports System.ComponentModel
Namespace WpfApplication1
Public Partial Class Window1
Inherits Window
Private worker As New BackgroundWorker()
Private from As Long = 1
Private [to] As Long = 200
Private biggestPrime As Long
Public Sub New()
MyBase.New()
InitializeComponent()
AddHandler worker.DoWork, New DoWorkEventHandler(AddressOf worker_DoWork)
AddHandler worker.RunWorkerCompleted, New RunWorkerCompletedEventHandler(AddressOf worker_RunWorkerCompleted)
End Sub
Private Sub Start_Click(sender As Object, e As RoutedEventArgs)
worker.RunWorkerAsync()
btnStart.IsEnabled = False
txtBiggestPrime.Text = String.Empty
End Sub
Private Sub worker_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
btnStart.IsEnabled = True
txtBiggestPrime.Text = biggestPrime.ToString()
End Sub
Private Sub worker_DoWork(sender As Object, e As DoWorkEventArgs)
For current As Long = from To [to]
biggestPrime = current
Next
End Sub
End Class
End Namespace
Related examples in the same category