In the async/await world, tasks are "hot". So, when you call ExecuteTask1
, the task returned to you is already being processed. It has already started at that point. You can put a Console.WriteLine
at the beginning of ExecuteTask*
to see that they do start immediately.
await
is only used to (asynchronously) wait for the completion of a task. It does not start tasks.
I have an async
intro on my blog that you may find helpful.