Monitor.TryEnter

image_pdfimage_print

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(); } } [/csharp]

This entry was posted in Thread. Bookmark the permalink.