using System.Threading.Tasks;
public static void Main()
Action<object> action = (object obj) =>
Console.WriteLine("Task={0}, obj={1}, Thread={2}",
Thread.CurrentThread.ManagedThreadId);
Task t1 = new Task(action, "alpha");
Task t2 = Task.Factory.StartNew(action, "beta");
Console.WriteLine("t1 has been launched. (Main Thread={0})",
Thread.CurrentThread.ManagedThreadId);
String taskData = "delta";
Task t3 = Task.Run(() => {
Console.WriteLine("Task={0}, obj={1}, Thread={2}",
Task.CurrentId, taskData,
Thread.CurrentThread.ManagedThreadId);
Task t4 = new Task(action, "gamma");