Приложение имитирует многопоточный расчёт. Сама имитация расчёта через метод delay, с динамическим меняющимся в цикле параметром времени. Количество потоков, длина расчёта должны быть заданы переменными. На консоль во время работы программы должно построчно для каждого потока выводиться:
- Номер потока по порядку;
- Идентификатор потока (ManagedThreadId);
- Текущая значение шага итерации вычисления, в диапазоне от 0 до максимального заданного переменной;
- Заполняющийся индикатор (наподобие прогресс-бара) визуализирующий процесс «расчёта»;
- По завершении работы каждого потока в соответствующей строке выводить сообщение об этом, а также позицию в очереди и суммарное время, затраченное при работке потока;
- Во время выполнения очередной итерации «расчёта» сымитировать (со случайной вероятностью) возникновение ошибки (exception), которые не должен приводить к прекращению работы потока или программы, при этом данный факт должен быть визуализирован отдельным цветом на прогресс-баре. После завершения всех потоков должна выводиться информация об этом.