using System; using System.Threading; namespace Threding { class Program { static void Main(string[] args) { // Paralel code execution // https://www.youtube.com/watch?v=Fzckqczmgd0 // synhronous/single threated execution //Function1(); //Function2(); // 1. Foreground threads // Paralel/multithreated asynchronous execution // forground threads // Thread obj1 = new Thread(Function1); // Thread obj2 = new Thread(Function2); // start the paralel threads // forground threads - even if the main finishes the threads will continue // obj1.Start(); // obj2.Start(); // here the main app quits but the foreground threads continue // Background threads will quit if the main app quits // 2. Background thread // By default the thread is forground Thread obj1 = new Thread(Function1); // !!! To make it background obj1.IsBackground = true; // make it beackground obj1.Start(); Console.WriteLine("The main application has exited"); } // For forground thread //static void Function1() //{ // for (int i = 0; i < 10; i++) // { // Console.WriteLine("Function 1 executed " + i.ToString()); // // to see the thread execution clearly we wait for 4 s // Thread.Sleep(4000); // } //} // For background thread static void Function1() { Console.WriteLine("Function 1 is entered ..."); Console.ReadLine(); // wait here Console.WriteLine("Function 1 is exited ..."); } static void Function2() { for (int i = 0; i < 10; i++) { Console.WriteLine("Function 2 executed " + i.ToString()); // to see the thread execution clearly we wait for 4 s Thread.Sleep(4000); } } } } /* Function 1 executed 0 Function 1 executed 1 Function 1 executed 2 Function 1 executed 3 Function 1 executed 4 Function 1 executed 5 Function 1 executed 6 Function 1 executed 7 Function 1 executed 8 Function 1 executed 9 Function 2 executed 0 Function 2 executed 1 Function 2 executed 2 Function 2 executed 3 Function 2 executed 4 Function 2 executed 5 Function 2 executed 6 Function 2 executed 7 Function 2 executed 8 Function 2 executed 9 Paralel execution Function 2 executed 0 Function 1 executed 0 Function 1 executed 1 Function 2 executed 1 Function 2 executed 2 Function 1 executed 2 Function 2 executed 3 Function 1 executed 3 Function 2 executed 4 Function 1 executed 4 Function 2 executed 5 Function 1 executed 5 Function 2 executed 6 Function 1 executed 6 Function 2 executed 7 Function 1 executed 7 Function 2 executed 8 Function 1 executed 8 Function 1 executed 9 Function 2 executed 9 Function 1 is entered ... The main application has exited eww Function 1 is exited ... background thread The main application has exited Function 1 is entered ... */