illustrates the use of the Interlocked object
/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /* Example14_9.cs illustrates the use of the Interlocked object */ using System; using System.Threading; public class Example14_9 { // a shared counter private int Runs = 0; // the CountUp method increments the shared counter public void CountUp() { while (Runs < 10) { Interlocked.Increment(ref Runs); Console.WriteLine(Thread.CurrentThread.Name + " " + Runs); Thread.Sleep(1000); } } public static void Main() { // Make an instance of this class Example14_9 ex = new Example14_9(); // And run the test outside of the static method ex.RunThreads(); } public void RunThreads() { // create and launch two threads Thread t2 = new Thread(new ThreadStart(CountUp)); t2.Name = "t2"; Thread t3 = new Thread(new ThreadStart(CountUp)); t3.Name = "t3"; t2.Start(); t3.Start(); } }
1. | illustrates the use of the lock object | ||
2. | Wait For Exclusive Access |