Await before an uncompleted Task will pass the control to the caller, until the Task is completed.
When you use it in Main() who is going to get the control?
public static async Task Main()
{
await F1() ; //This await will pass the control to ???
}
public static async Task F1()
{
await Task.Run(()=>{...}) ; //This await will pass the control to Main()
}