//static void AddByTwo(object _lock) //{ // while (true) // { // Monitor.Enter(_lock); // number += 2; // Console.WriteLine("Added by two, now number is at " + number); // Thread.Sleep(1000); // Monitor.Exit(_lock); // } //} //static void MinusByOne(object _lock) //{ // while (true) // { // Monitor.Enter(_lock); // number--; // Console.WriteLine("Reduced by one, now number is at " + number); // Thread.Sleep(1000); // Monitor.Exit(_lock); // } //} //static bool doStars = false; //static void WriteStars() //{ // while (true) // { // if (Monitor.TryEnter(_lock)) // { // if (doStars) // { // for (int i = 0; i < 60; i++) // { // Console.Write("*"); // } // number += 60; // Console.Write(" " + number + "\n"); // doStars = false; // Monitor.Pulse(_lock); // Monitor.Exit(_lock); // } // else // { // Monitor.Wait(_lock); // } // } // } //} //static void WriteFences() //{ // while (true) // { // if (Monitor.TryEnter(_lock)) // { // if (!doStars) // { // for (int i = 0; i < 60; i++) // { // Console.Write("#"); // } // number += 60; // Console.Write(" " + number + "\n"); // doStars = true; // Monitor.Pulse(_lock); // Monitor.Exit(_lock); // } // else // { // Monitor.Wait(_lock); // } // } // } //} public static void FillForkArray() { for (int i = 0; i < forkArray.Length; i++) { forkArray[i] = new Fork("Fork " + i); } }
public Philosopher(string name, Fork leftFork, Fork rightFork) { LeftFork = leftFork; RightFork = rightFork; Name = name; }