create a simple event handler for the click event of the button.
async void Start_Button_Click(object sender, RoutedEventArgs e)
{
    //start the first long running task in parallel
    await LongRunningTask(Progress00_ProgresBar);
    //print something to the textbox
    TextBoxOne.Text = "First Progress Bar Complete";
    //show a message to the user
    await new MessageDialog("Good Times").ShowAsync();
    //start the second long running task in parallel
    await LongRunningTask(Progress01_ProgresBar);
    //print something to the second textbox
    TextBoxTwo.Text = "Second Progress Bar Complete";
}
public void LongRunningTask(ProgressBar pb)
{
    for (var i = 0; i <= 100; i+=20)
    {
        Task.Delay(1000).Wait();
        pb.Value = i;
    }
}
Now that worked great, that is unless you clicked the start button again before the whole process finished, kinda bunk what we need to do is be able to cancel our tasks if the start button is clicked. to do this we need to add a CancellationTokenSource, let's go ahead and create a property right on the page.
with that done let's modify our start event handler
async void Start_Button_Click(object sender, RoutedEventArgs e)
Next we modify our long running function to accept the cancellation token and use it to terminate the task if it's signaled to cancel.
we pass in our token and then if we signal it, our long running task will stop and throw an cancellation request winch will halt our start event handler.
Now that worked great, that is unless you clicked the start button again before the whole process finished, kinda bunk what we need to do is be able to cancel our tasks if the start button is clicked. to do this we need to add a CancellationTokenSource, let's go ahead and create a property right on the page.
public sealed partial class MainPage : Page
{
    CancellationTokenSource cts { get; set; }
    //Our Code ...
}
async void Start_Button_Click(object sender, RoutedEventArgs e)
{
    //Check if cancellation token source is instantiated
    if (this.cts != null) {
        //if it is, that means we're running and cancel
        cts.Cancel(true);
    }
    else
    {
        cts = new CancellationTokenSource();
        try
        {
            //start
the first long running task in parallel
            await LongRunningTask(Progress00_ProgresBar, cts.Token);
            //print
something to the textbox
            TextBoxOne.Text = "First Progress Bar Complete";
            //show a
message to the user
            await new MessageDialog("Good Times").ShowAsync();
            //start
the second long running task in parallel
            await LongRunningTask(Progress01_ProgresBar, cts.Token);
            //print
something to the second textbox
            TextBoxTwo.Text = "Second Progress Bar Complete";
        }
        //catch cancellation exception from LongRunning function
        catch (OperationCanceledException ocex)
        {
            new MessageDialog("Operation
Canceled, click start again").ShowAsync();
        }
        finally
        {
            //canceled or finished set the cancellation token source to null
            this.cts = null;
        }
    }
}
async Task LongRunningTask(ProgressBar pb, CancellationToken token)
{
    for (var i = 0; i <= 100; i += 20)
    {
        await Task.Delay(1000);
        //if
cancel signal sent, break the loop
        if (token.IsCancellationRequested)
            break;
        await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => pb.Value = i);
    }
    //throw
cancelation exception
    token.ThrowIfCancellationRequested();
}
we pass in our token and then if we signal it, our long running task will stop and throw an cancellation request winch will halt our start event handler.
