Mega Code Archive

 
Categories / C# Tutorial / Thread
 

Use the Mutex object

using System; using System.Threading; class MainClass {   private static int Runs = 0;   static Mutex mtx = new Mutex(false, "RunsMutex");   public static void CountUp()    {     while (Runs < 10)     {       // acquire the mutex       mtx.WaitOne();       int Temp = Runs;       Temp++;       Console.WriteLine(Thread.CurrentThread.Name + " " + Temp);       Thread.Sleep(1000);       Runs = Temp;       // release the mutex       mtx.ReleaseMutex();     }    }   public static void Main()    {     Thread t2 = new Thread(new ThreadStart(CountUp));     t2.Name = "t2";     Thread t3 = new Thread(new ThreadStart(CountUp));     t3.Name = "t3";     t2.Start();     t3.Start();   } } t2 1 t3 2 t3 3 t3 4 t3 5 t3 6 t3 7 t3 8 t3 9 t3 10 t2 11