Lock a single variable in multi threaded applications

This article represents about lock a single variable in multi threaded applications with code snippet

Instead of locking the entire object using the lock() statement in C#, the following code uses the InterLocked Class to perform thread-safe write operation on a variable. Because the following example uses the shared variable, the new value for the variable is available in both the threads.

static int x = 100;
static void Main(string[] args)
Thread t1 = new Thread(delegate() { UpdateValue(); });
Thread t2 = new Thread(delegate() { UpdateValue(); });

static void UpdateValue()

// Value of x is set to 30 here
if (Interlocked.Exchange(ref Sample.x, 30) == 0)
Console.WriteLine("{0} static value is {1}", Thread.CurrentThread.Name, x);
// Variable x is released after setting the value
Interlocked.Exchange(ref Sample.x, 0);
Console.WriteLine("{0} is denied access to the static value x", Thread.CurrentThread.Name);


Guest Author: Kerriann09 Dec 2011

Apparently this is what the esteemed Willis was talking about.

  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name: