• 1400/02/27

اشکال در خروجی برنامه در حالت غیر همزمان :

سلام وقت بخیر

میخوام برنامه در حالت متد۲  و همزمان اجرا بشه ولی خروجی رو خراب نکنه و خروجی شبیه متد۱ باشه. باید چکارش کنم؟

تشکر

  class Program
    {

        public static void Main(string[] args)
        {
            Method1();
            Method2();
            Console.ReadKey();
        }

        public static void Method1()
        {
            Console.WriteLine("***First Method***");
            for (int i = 0; i < 5; i++)
            {
                    Thread.Sleep(2000);
                    Console.WriteLine("counter=>{0}", i);
            }
            
            Console.WriteLine("**********************\n\n");
        }
        
        public  static void  Method2()
        {
            Console.WriteLine("***Second Method***");
            
            List<Task> tasks = new List<Task>();

            for (int i = 0; i < 5; i++)
            {
                tasks.Add(Task.Factory.StartNew(() =>
                {
                    Thread.Sleep(2000);
                    Console.WriteLine("counter=>{0}",i);
                }));

            }
             Task.WaitAll(tasks.ToArray());
        }
     
    }
    
    //--------------------------خروجی‌ها------------------------------
    ***First Method***
counter=>0
counter=>1
counter=>2
counter=>3
counter=>4
**********************


***Second Method***
counter=>5
counter=>5
counter=>5
counter=>5
counter=>5

 

logo-samandehi