# Your Ultimate async / await Tutorial in C#

AramT
104.6K views

Let's take a look at this example of a CPU-bound asynchronous method.

Click run to see the console output
·using System;
namespace AsyncApp
{
class Program
{
static void Main(string[] args)
{
var totalAfterTax = CalculateTotalAfterTaxAsync(70);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

In the above program, we have added an async method, CalculateTotalAfterTaxAsync, that takes an argument of float which represents the value to calculate upon.

Inside the method, if you notice, we are awaiting a task created on a background thread. As mentioned previously, we use this methodology, CPU Bound asynchronous method, when we need to do some offline heavy calculation that doesn't rely on specific I/O operation.

Once the task is completed. it will resume the CalculateTotalAfterTaxAsync with the statements after the await line. So it will displaying the Total after calculating the tax.