Example #1
0
 private static TomatoPasta AddSauceToPasta(DrainedCookedPasta drainedCookedPasta)
 {
     Console.WriteLine("Adding the sauce to the pasta...");
     Thread.Sleep(1000);
     Console.WriteLine("The sauce has now been added to the pasta.");
     return(new TomatoPasta(drainedCookedPasta));
 }
Example #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);
        }
Example #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);
        }
Example #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);
        }
Example #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);
        }
Example #6
0
 public TomatoPasta(DrainedCookedPasta drainedCookedPasta)
 {
 }