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