Mega Code Archive

 
Categories / C# Tutorial / Thread
 

Use the lock object

using System; using System.Threading; class MainClass {   private int Runs = 0;   public  void CountUp()    {     while (Runs < 10)     {       lock(this)       {         int Temp = Runs;         Temp++;         Console.WriteLine(Thread.CurrentThread.Name + " " + Temp);         Thread.Sleep(1000);         Runs = Temp;       }     }    }   public void RunThreads()   {     Thread t2 = new Thread(new ThreadStart(CountUp));     t2.Name = "t2";     Thread t3 = new Thread(new ThreadStart(CountUp));     t3.Name = "t3";     t2.Start();     t3.Start();   }   public static void Main()    {     MainClass ex = new MainClass();     ex.RunThreads();   } } t2 1 t3 2 t2 3 t3 4 t2 5 t3 6 t2 7 t3 8 t2 9 t3 10 t2 11