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)); }
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); }
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); }
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); }
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); }
public TomatoPasta(DrainedCookedPasta drainedCookedPasta) { }