using System.Threading.Tasks;
public static void Main()
Console.WriteLine("STEP 1");
Console.WriteLine("STEP 4");
static async void asyncfunction(){
Console.WriteLine("STEP 2");
Console.WriteLine("STEP 3");
private async static void CallerWithAsync()
Console.WriteLine("inside CallerWithAsync");
string result = await GreetingAsync("Stephanie");
Console.WriteLine("inside CallerWithAsync after await");
Console.WriteLine(result);
static Task<string> GreetingAsync(string name)
{Console.WriteLine("inside GreetingAsync");
return Task.Run<string>(() =>
static string Greeting(string name)
Console.WriteLine("inside Greeting");
return string.Format("Hello, {0}", name);