Mega Code Archive

 
Categories / C# / Thread
 

Monitor TryEnter

using System; using System.Threading; public class TryEnter {     public void CriticalSection() {         bool b = Monitor.TryEnter(this, 1000);         Console.WriteLine("Thread " +                           Thread.CurrentThread.GetHashCode() +                           " TryEnter Value " + b);         for (int i = 1; i <= 3; i++) {             Thread.Sleep(1000);             Console.WriteLine(i + " " +                               Thread.CurrentThread.GetHashCode() + " ");         }         Monitor.Exit(this);     }     public static void Main() {         TryEnter a = new TryEnter();         Thread t1 = new Thread(new ThreadStart(a.CriticalSection));         Thread t2 = new Thread(new ThreadStart(a.CriticalSection));         t1.Start();         t2.Start();     } }