using System;
using System.Threading.Tasks;
public class Test
{
static void Main(string[] args)
{
Task[] tasks = new Task[5];
for (int i = 0; i < 5; i++)
{
tasks[i] = Task.Factory.StartNew(() => Foo(i));
}
Task.WaitAll(tasks);
Console.ReadKey();
}
static void Foo(int i)
{
Console.WriteLine(i);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKcHVibGljIGNsYXNzIFRlc3QKewpzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCnsKCVRhc2tbXSB0YXNrcyA9IG5ldyBUYXNrWzVdOwoJZm9yIChpbnQgaSA9IDA7IGkgPCA1OyBpKyspCgl7CgkJdGFza3NbaV0gPSBUYXNrLkZhY3RvcnkuU3RhcnROZXcoKCkgPT4gRm9vKGkpKTsKCX0KCVRhc2suV2FpdEFsbCh0YXNrcyk7CglDb25zb2xlLlJlYWRLZXkoKTsKfQoKc3RhdGljIHZvaWQgRm9vKGludCBpKQp7CkNvbnNvbGUuV3JpdGVMaW5lKGkpOwp9IAp9