"Nonatomic Compound Operations Example"

private static int sharedState = 0;
private const int INCREMENT_PER_THREAD = 100000;

static unsafe void Main(string[] args) {
	Thread writerThread1 = new Thread(WriterThreadEntry);
	Thread writerThread2 = new Thread(WriterThreadEntry);
	Thread writerThread3 = new Thread(WriterThreadEntry);
	Thread writerThread4 = new Thread(WriterThreadEntry);

	writerThread1.Start();
	writerThread2.Start();
	writerThread3.Start();
	writerThread4.Start();

	writerThread1.Join();
	writerThread2.Join();
	writerThread3.Join();
	writerThread4.Join();

	Console.WriteLine("Done. Value: " + sharedState);
	Console.ReadKey();
}

private static void WriterThreadEntry() {
	for (int i = 0; i < INCREMENT_PER_THREAD; ++i) {
		sharedState++;
	}
}


Code snippet taken from "Common Multithreading Mistakes in C# - III: Unsafe Assumptions".