Check out example codes for "c# async in wpf". It will help you in understanding the concepts better.

Code Example 1

private async void ButtonClick(object sender, RoutedEventArgs e)
    // modify UI object in UI thread
    txt.Text = "started";

    // run a method in another thread
    await HeavyMethod(txt);
    // <<method execution is finished here>>

    // modify UI object in UI thread
    txt.Text = "done";

// This is a thread-safe method. You can run it in any thread
internal async Task HeavyMethod(TextBox textBox)
    while (stillWorking)
        textBox.Dispatcher.Invoke(() =>
            // UI operation goes inside of Invoke
            textBox.Text += ".";
            // Note that: 
            //    Dispatcher.Invoke() blocks the UI thread anyway
            //    but without it you can't modify UI objects from another thread
        // CPU-bound or I/O-bound operation goes outside of Invoke
        // await won't block UI thread, unless it's run in a synchronous context
        await Task.Delay(51);

Learn ReactJs, React Native from