illustrates the use of the lock object
/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /* Example14_8.cs illustrates the use of the lock object */ using System; using System.Threading; public class Example14_8 { // a shared counter private int Runs = 0; // the CountUp method increments the shared counter public void CountUp() { while (Runs < 10) { lock(this) { int Temp = Runs; Temp++; Console.WriteLine(Thread.CurrentThread.Name + " " + Temp); Thread.Sleep(1000); Runs = Temp; } } } public static void Main() { // Make an instance of this class Example14_8 ex = new Example14_8(); // 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 Interlocked object | ||
2. | Wait For Exclusive Access |