Ejemplo n.º 1
0
        private static async Task <FinishedPastaDish> BakePastaAsync(CheeseAndTomatoPasta cheeseAndTomatoPasta, PreHeatedOven preHeatedOven)
        {
            Console.WriteLine("Placed the pasta dish in the oven. Baking has begun...");
            await Task.Delay(15000);

            Console.WriteLine("The pasta dish has now finished baking. The cheese is all lovely and golden!");
            return(new FinishedPastaDish(cheeseAndTomatoPasta, preHeatedOven));
        }
Ejemplo n.º 2
0
        public static void SingleSynchronousThread()
        {
            BoilingWater         boilingWater         = BoilWaterAsync().Result;
            CookedPasta          cookedPasta          = CookPasta(boilingWater);
            DrainedCookedPasta   drainedCookedPasta   = DrainPasta(cookedPasta);
            TomatoPasta          tomatoPasta          = AddSauceToPasta(drainedCookedPasta);
            GratedCheese         gratedCheese         = GrateCheese();
            CheeseAndTomatoPasta cheeseAndTomatoPasta = AddCheeseToPasta(gratedCheese, tomatoPasta);
            PreHeatedOven        preHeatedOven        = PreHeatOvenAsync().Result;
            FinishedPastaDish    finishedPastaDish    = BakePastaAsync(cheeseAndTomatoPasta, preHeatedOven).Result;
            Dessert dessert = PrepareDessert();

            EatMeal(finishedPastaDish, dessert);
        }
Ejemplo n.º 3
0
        public static void MultipleSynchronousThreads()
        {
            Task <PreHeatedOven> preHeatOvenTask      = Task.Run(PreHeatOvenAsync);
            Task <Dessert>       prepareDessertTask   = Task.Run(() => PrepareDessert());
            Task <GratedCheese>  grateCheeseTask      = Task.Run(() => GrateCheese());
            BoilingWater         boilingWater         = BoilWaterAsync().Result;
            CookedPasta          cookedPasta          = CookPasta(boilingWater);
            DrainedCookedPasta   drainedCookedPasta   = DrainPasta(cookedPasta);
            TomatoPasta          tomatoPasta          = AddSauceToPasta(drainedCookedPasta);
            GratedCheese         gratedCheese         = grateCheeseTask.Result;
            CheeseAndTomatoPasta cheeseAndTomatoPasta = AddCheeseToPasta(gratedCheese, tomatoPasta);
            PreHeatedOven        preHeatedOven        = preHeatOvenTask.Result;
            FinishedPastaDish    finishedPastaDish    = BakePastaAsync(cheeseAndTomatoPasta, preHeatedOven).Result;
            Dessert dessert = prepareDessertTask.Result;

            EatMeal(finishedPastaDish, dessert);
        }
Ejemplo n.º 4
0
        public static async Task SingleAsynchronousThread()
        {
            Task <BoilingWater>      boilWaterTask        = BoilWaterAsync();
            Task <PreHeatedOven>     preHeatOvenTask      = PreHeatOvenAsync();
            GratedCheese             gratedCheese         = GrateCheese();
            BoilingWater             boilingWater         = await boilWaterTask;
            CookedPasta              cookedPasta          = CookPasta(boilingWater);
            DrainedCookedPasta       drainedCookedPasta   = DrainPasta(cookedPasta);
            TomatoPasta              tomatoPasta          = AddSauceToPasta(drainedCookedPasta);
            CheeseAndTomatoPasta     cheeseAndTomatoPasta = AddCheeseToPasta(gratedCheese, tomatoPasta);
            PreHeatedOven            preHeatedOven        = await preHeatOvenTask;
            Task <FinishedPastaDish> bakePastaTask        = BakePastaAsync(cheeseAndTomatoPasta, preHeatedOven);
            Dessert           dessert           = PrepareDessert();
            FinishedPastaDish finishedPastaDish = await bakePastaTask;

            EatMeal(finishedPastaDish, dessert);
        }
Ejemplo n.º 5
0
        public static async Task MultipleAsynchronousThreads()
        {
            Task <Dessert>      prepareDessertTask = Task.Run(() => PrepareDessert());
            Task <GratedCheese> grateCheeseTask    = Task.Run(() => GrateCheese());

            Task <BoilingWater>  boilWaterTask        = BoilWaterAsync();
            Task <PreHeatedOven> preHeatOvenTask      = PreHeatOvenAsync();
            BoilingWater         boilingWater         = await boilWaterTask;
            CookedPasta          cookedPasta          = CookPasta(boilingWater);
            DrainedCookedPasta   drainedCookedPasta   = DrainPasta(cookedPasta);
            TomatoPasta          tomatoPasta          = AddSauceToPasta(drainedCookedPasta);
            GratedCheese         gratedCheese         = await grateCheeseTask;
            CheeseAndTomatoPasta cheeseAndTomatoPasta = AddCheeseToPasta(gratedCheese, tomatoPasta);
            PreHeatedOven        preHeatedOven        = await preHeatOvenTask;
            FinishedPastaDish    finishedPastaDish    = await BakePastaAsync(cheeseAndTomatoPasta, preHeatedOven);

            Dessert dessert = await prepareDessertTask;

            EatMeal(finishedPastaDish, dessert);
        }
Ejemplo n.º 6
0
 public FinishedPastaDish(CheeseAndTomatoPasta cheeseAndTomatoPasta, PreHeatedOven preHeatedOven)
 {
 }