Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Execute a Method Asynchronously Using the Dispatcher Queue

<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="220" Height="104" >     <StackPanel Orientation="Vertical">         <Button Click="StartStop_Click" Name="btnStartStop">Start</Button>         <StackPanel Orientation="Horizontal">             <TextBlock>Biggest Prime Found:</TextBlock>             <TextBlock Name="txtNumber"/>         </StackPanel>     </StackPanel> </Window> //File:Window.xaml.vb Imports System Imports System.Windows Imports System.Windows.Threading Namespace WpfApplication1   Public Partial Class Window1     Inherits Window     Private continueCalculating As Boolean = False     Public Sub New()       MyBase.New()       InitializeComponent()     End Sub     Private Sub StartStop_Click(sender As Object, e As RoutedEventArgs)       If continueCalculating Then         continueCalculating = False         btnStartStop.Content = "Start"       Else         continueCalculating = True         btnStartStop.Content = "Stop"         Me.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New Action(Of Integer)(AddressOf UpdateNumber), 3)       End If     End Sub     Public Sub UpdateNumber(current As Integer)       txtNumber.Text = current.ToString()       If continueCalculating Then         Me.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, New Action(Of Integer)(AddressOf UpdateNumber), current + 2)       End If     End Sub   End Class End Namespace