Mega Code Archive

 
Categories / VB.Net / WPF
 

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