using System.Threading.Tasks;
public static async void Main()
var t0 = new Task(() => {
Console.WriteLine("Task 0");
var t1 = new Task<int>(() => {
Console.WriteLine("Task 1");
Console.WriteLine("Result: {0}", result);
var t2 = new Task(() => {
Console.WriteLine("Task 2");
var t3 = new Task(() => {
Console.WriteLine("Task 3");
Task.WaitAll(new Task[] { t2, t3 }, 2000);
var t4 = new Task(() => {
Console.WriteLine("Task 4");
var t5 = new Task(() => {
Console.WriteLine("Task 5");
Task.WaitAny(new Task[] { t4, t5 }, 2000);
var t6 = new Task(() => {
Console.WriteLine("Task 6");
var t7 = new Task(() => {
Console.WriteLine("Task 7");
await Task.WhenAll(new Task[] {t6, t7 });