Exemple #1
0
 private void TentarIniciarPreparo()
 {
     if (Monitor.TryEnter(AlocarCozinheiroMonitor, 200))
     {
         try
         {
             var cozinheiro = Cozinheiros.FirstOrDefault(c => c.Livre);
             if (cozinheiro == null)
             {
                 return;
             }
             Pedido pedido = null;
             if (FilaDePedidos.TryDequeue(out pedido))
             {
                 cozinheiro.Preparar(pedido, PedidoPronto);
             }
         }
         finally
         {
             Monitor.Exit(AlocarCozinheiroMonitor);
         }
     }
 }
Exemple #2
0
 public void NovoPedido(Pedido pedido)
 {
     FilaDePedidos.Enqueue(pedido);
     TentarIniciarPreparo();
 }