Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }