Разработать программу, в которой для решения квадратного уравнения используются три дополнительные нити - C#
Формулировка задачи:
Разработать программу, в которой для решения квадратного уравнения используются три дополнительные нити – Н1, Н2 и Н3. Нить Н1 в режиме диалога получает значения коэффициентов квадратного уравнения a, b, c и передает их в нить Н2. Нить Н2 определяет, существуют ли действительные корни уравнения и значения дискриминанта передает нити Н3 с одновременной печатью необходимых комментарий. Нить Н3 вычисляет и печатает действительные корни квадратного уравнения.
Помогите решить пожалуйста!
Решение задачи: «Разработать программу, в которой для решения квадратного уравнения используются три дополнительные нити»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication1 {
class Program {
static void Main(string[] args) {
Task<int[]>.Factory.StartNew(() => {
//Тут получаем в режиме диалога
//начальные данные для вычислений
//Если требуется, можно выбросить Exception
//Возвращаем данные
return new int[] { 1, 2, 3 };
}).ContinueWith<int[]>(task => {
//Проверяем нет ли исключений
//в предыдущей задаче
//Если есть - перегенерируем исключение
if (task.Exception != null) {
throw task.Exception.InnerException;
}
//Получаем начальные данные
int[] inData = task.Result;
//Тут вычисляем те данные что нужны для последующих вычислений
//и возвращаем результат
return new int[] { 4, 5 };
})
.ContinueWith(task => {
//Проверяем нет ли исключений
//в предыдущей задаче
//Если есть - выводим его на экран
if (task.Exception != null) {
Console.WriteLine(task.Exception.InnerException.Message);
return;
}
//Получаем данные предыдущей задачи
int[] inData = task.Result;
//Работаем с данными и выводим результат
});
Console.ReadLine();
}
}
}