Task.Delay(1000) = Thread.Sleep(1000)
Task.Wait() = Thread.Join()
Task.WaitAll(task1,task2,....,taskN) OR Task.Wait( task[] )
task1.Result = is blocking