private void Test(MonitorBasedDeveloper developer)
		{
			lock (typeof(Developer))
			{
				if (developer.Left.State != DeveloperState.Coding
					&& developer.State == DeveloperState.Waiting
					&& developer.Right.State != DeveloperState.Coding)
				{
					lock (developer)
					{
						developer.SetState(DeveloperState.Coding);
						Monitor.Pulse(developer);
					}
				}
			}
		}
示例#2
0
 private void Test(MonitorBasedDeveloper developer)
 {
     lock (typeof(Developer))
     {
         if (developer.Left.State != DeveloperState.Coding &&
             developer.State == DeveloperState.Waiting &&
             developer.Right.State != DeveloperState.Coding)
         {
             lock (developer)
             {
                 developer.SetState(DeveloperState.Coding);
                 Monitor.Pulse(developer);
             }
         }
     }
 }