Use the Interlocked object : Interlocked « Thread « C# / CSharp Tutorial






using System;
using System.Threading;

class MainClass
{
  private int Runs = 0;

  public void CountUp() 
  {
    while (Runs < 10)
    {
      Interlocked.Increment(ref Runs);
      Console.WriteLine(Thread.CurrentThread.Name + " " + Runs);
      Thread.Sleep(1000);
    } 
  }

  public static void Main() 
  {
    MainClass ex = new MainClass();
    ex.RunThreads();
  }

  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();
  }
}
t2 1
t3 2
t2 3
t3 4
t2 5
t3 6
t2 7
t3 8
t2 9
t3 10








20.14.Interlocked
20.14.1.Use the Interlocked object
20.14.2.Use Interlocked operations
20.14.3.Interlocked.Increment and Interlocked.Decrement
20.14.4.Interlocked