using System;
using System.Threading.Tasks;
public class Program
{
public static void Main()
{
var t = Test();
t.Wait();
Console.WriteLine($"completed {t.Id}");
t = Task.Run(Test);
t.Wait();
Console.WriteLine($"completed {t.Id}");
}
public static async Task Test() {
Console.WriteLine($"task {Task.CurrentId}");
await Task.Yield();
Console.WriteLine($"task {Task.CurrentId}");
await Task.Yield();
Console.WriteLine($"task {Task.CurrentId}");
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKcHVibGljIGNsYXNzIFByb2dyYW0KewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciB0ID0gVGVzdCgpOwoJCXQuV2FpdCgpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCQiY29tcGxldGVkIHt0LklkfSIpOwoJCQoJCXQgPSBUYXNrLlJ1bihUZXN0KTsKCQl0LldhaXQoKTsKCQlDb25zb2xlLldyaXRlTGluZSgkImNvbXBsZXRlZCB7dC5JZH0iKTsKCX0KCQoJcHVibGljIHN0YXRpYyBhc3luYyBUYXNrIFRlc3QoKSB7CgkJQ29uc29sZS5Xcml0ZUxpbmUoJCJ0YXNrIHtUYXNrLkN1cnJlbnRJZH0iKTsKCQlhd2FpdCBUYXNrLllpZWxkKCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoJCJ0YXNrIHtUYXNrLkN1cnJlbnRJZH0iKTsKCQlhd2FpdCBUYXNrLllpZWxkKCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoJCJ0YXNrIHtUYXNrLkN1cnJlbnRJZH0iKTsKCX0KfQ==