internal static async void PrepareBreakfast() { Task <List <Ei> > eierTask = BrateEierAsync(2); Task <List <Speck> > speckTask = BrateSpeckAsync(3); Task <List <Brotscheibe> > brotTask = BrotMitButterUndMarmelade(2); // Tasks ausführen / Frühstück servieren Saft osaft = SchenkeOsaftEin(); Console.WriteLine("Osaft ist fertig"); // gestartete Aufgaben zum Ende bringen, Variante 1 //List<Brotscheibe> brotscheiben = await brotTask; //Console.WriteLine("Brot ist fertig geschmiert"); //List<Ei> eier = await eierTask; //Console.WriteLine("Eier sind fertig"); //List<Speck> speckscheiben = await speckTask; //Console.WriteLine("Speck ist fertig"); // gestartete Aufgaben zum Ende bringen, Variante 2 await Task.WhenAll(brotTask, eierTask, speckTask); Console.WriteLine("Brot ist fertig geschmiert"); Console.WriteLine("Eier sind fertig"); Console.WriteLine("Speck ist fertig"); Kaffee tasse = SchenkeKaffeeEin(); Console.WriteLine("Kaffee ist fertig"); Console.WriteLine("Frühstück ist fertig!"); }
private static Saft SchenkeOsaftEin() { Console.WriteLine("OSaft wird eingeschenkt"); Saft osaft = new Saft(); return(osaft); }
private static Saft SchenkeOsaftEin() { stopwatch.Start(); Thread.Sleep(1000); Console.WriteLine("OSaft wird eingeschenkt"); Saft osaft = new Saft(); stopwatch.Stop(); return(osaft); }
static async Task Main(string[] args) { #region Klasse Task Console.WriteLine("\n ### Klasse Task ###"); MyTask.DemonstrateTask(); #endregion #region Frühstück Console.WriteLine("\n ### Frühstück ###"); // Tasks anlegen // äquivalent zu Func<string>: Task <List <Ei> > eierTask = BrateEierAsync(2); Task <List <Speck> > speckTask = BrateSpeckAsync(3); Task <List <Brotscheibe> > brotTask = BrotMitButterUndMarmelade(2); // Tasks ausführen / Frühstück servieren Saft osaft = SchenkeOsaftEin(); Console.WriteLine("Osaft ist fertig"); // gestartete Aufgaben zum Ende bringen, Variante 1 //List<Brotscheibe> brotscheiben = await brotTask; //Console.WriteLine("Brot ist fertig geschmiert"); //List<Ei> eier = await eierTask; //Console.WriteLine("Eier sind fertig"); //List<Speck> speckscheiben = await speckTask; //Console.WriteLine("Speck ist fertig"); // gestartete Aufgaben zum Ende bringen, Variante 2 await Task.WhenAll(brotTask, eierTask, speckTask); Console.WriteLine("Brot ist fertig geschmiert"); Console.WriteLine("Eier sind fertig"); Console.WriteLine("Speck ist fertig"); Kaffee tasse = SchenkeKaffeeEin(); Console.WriteLine("Kaffee ist fertig"); Console.WriteLine("Frühstück ist fertig!"); Console.ReadKey(); }