using System.Threading.Tasks;
public static void Main()
Console.WriteLine("Hello from main thread {0}", Thread.CurrentThread.ManagedThreadId);
protected static void UsingParallelInvoke() {
Console.WriteLine("Using parallel invoke");
Parallel.Invoke(() => Console.WriteLine("Hello from Task {0}", Thread.CurrentThread.ManagedThreadId));
protected static void UsingTaskRun() {
Console.WriteLine("Using task run static method");
Task taskA = Task.Run(() => Console.WriteLine("Hello from Task {0}", Thread.CurrentThread.ManagedThreadId));
protected static void UsingTaskNew() {
Console.WriteLine("Using new to create task");
Task taskA = new Task(() => Console.WriteLine("Hello from Task {0}", Thread.CurrentThread.ManagedThreadId));
protected static void UsingTaskFactory() {
Console.WriteLine("Using task factory");
Task taskA = Task.Factory.StartNew(() => Console.WriteLine("Hello from Task {0}", Thread.CurrentThread.ManagedThreadId));