using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
var timer = Stopwatch.StartNew();
Task taskA = new Task(MethodA);
taskA.Start();
Task taskB = Task.Factory.StartNew(MethodB);
Task taskC = Task.Run(new Action(MethodC));
Task[] tasks = { taskA, taskB, taskC };
Task.WaitAll(tasks);
Console.WriteLine($"{timer.ElapsedMilliseconds:#.##0}ms elapesed");
}
static void MethodA()
{
Console.WriteLine("Starting method A");
Thread.Sleep(3000);
Console.WriteLine("Finished method A");
}
static void MethodB()
{
Console.WriteLine("Starting method B");
Thread.Sleep(2000);
Console.WriteLine("Finished method B");
}
static void MethodC()
{
Console.WriteLine("Starting method C");
Thread.Sleep(1000);
Console.WriteLine("Finished method C");
}
}
}