public void Parallele_Ausführung() { var multipliziere1 = new Multipliziere_mit_sich_selbst(); var multipliziere2 = new Multipliziere_mit_sich_selbst(); var scatter = new Scatter<double>(); var gather = new Gather<double>(); scatter.Output1 += multipliziere1.Process; scatter.Output2 += multipliziere2.Process; multipliziere1.Result += gather.Input1; multipliziere2.Result += gather.Input2; var waitHandle = new AutoResetEvent(false); IEnumerable<double> result = null; gather.Result += x => { result = x; waitHandle.Set(); }; var dauer = Stopuhr.Starten(() => { scatter.Process(Zahlen(10000000)); waitHandle.WaitOne(); result.Last(); }); Console.WriteLine(dauer); }
public void Synchrone_Ausführung() { var multipliziere = new Multipliziere_mit_sich_selbst(); IEnumerable<double> result = null; multipliziere.Result += x => result = x; var dauer = Stopuhr.Starten(() => { multipliziere.Process(Zahlen(10000000)); result.Last(); }); Console.WriteLine(dauer); }