private static void FirstMethod(ArrayProcessor processor, int arrayCapacity) { Task <int[]> task = new Task <int[]>(() => processor.CreateArray(arrayCapacity)); task.Start(); task.ContinueWith((t) => processor.Multiply(t.Result)) .ContinueWith((t) => processor.Sort(t.Result)) .ContinueWith((t) => { var value = processor.GetAverageValue(t.Result); WriteLine($"Average value is: {value}"); }); task.Wait(); }
private static void SecondMethod(ArrayProcessor processor, int arrayCapacity) { var task = Task.Factory.StartNew(() => { var array = processor.CreateArray(arrayCapacity); Task.Factory.StartNew(() => { array = processor.Multiply(array); Task.Factory.StartNew(() => { array = processor.Sort(array); Task.Factory.StartNew(() => { var value = processor.GetAverageValue(array); WriteLine($"Average value is: {value}"); }, TaskCreationOptions.AttachedToParent); }, TaskCreationOptions.AttachedToParent); }, TaskCreationOptions.AttachedToParent); }); task.Wait(); }