<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.cs using System; using System.Windows; using System.Windows.Threading; namespace WpfApplication1 { public partial class Window1 : Window { private bool continueCalculating = false; public Window1() : base() { InitializeComponent(); } private void StartStop_Click(object sender, RoutedEventArgs e) { if(continueCalculating) { continueCalculating = false; btnStartStop.Content = "Start"; } else { continueCalculating = true; btnStartStop.Content = "Stop"; this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,new Action<int>(UpdateNumber), 3); } } public void UpdateNumber(int current) { txtNumber.Text = current.ToString(); if(continueCalculating) { this.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle,new Action<int>(UpdateNumber), current + 2); } } } }