using System; using System.Threading.Tasks; namespace Multithreading { internal static class Program { public static void Main(string[] args) { Console.WriteLine("Program started"); // Task task = new Task(() => // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} started"); // for (int i = 0; i < 10; i++) // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId}: {i}"); // Thread.Sleep(500); // } // // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} stopped"); // }); // task.Start(); // // // Task task2 = Task.Run(() => // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} started"); // for (int i = 0; i < 10; i++) // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId}: {i}"); // Thread.Sleep(500); // } // // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} stopped"); // }); // // task.Wait(); // task2.Wait(); // // Task task3 = new Task(() => // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} started"); // for (int i = 0; i < 10; i++) // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId}: {i}"); // Thread.Sleep(500); // } // // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} stopped"); // }); // task3.RunSynchronously(); // Task[] tasks = new Task[10]; // Random random = new Random(); // for (int i = 0; i < 10; i++) // { // tasks[i] = Task.Run(() => // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} started"); // for (int j = 0; j < 10; j++) // { // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId}: {j}"); // Thread.Sleep(random.Next(100, 1000)); // } // // Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId} stopped"); // }); // } // // // Task.WaitAll(tasks); // Task.WaitAny(tasks); Parallel.For(0, 10000, i => { // do whatever you want to do in parallel Console.WriteLine($"Task with Thread {Thread.CurrentThread.ManagedThreadId}: {i}"); }); Console.WriteLine("Program ended"); } } }