Вы - инженер-программист мирового класса. Мне нужно, чтобы вы составили техническое задание на создание следующего программного обеспечения: 
К следующему коду добавить: Приложение должно обеспечивать
запуск до 10 потоков, обрабатывающих до 10 различных изображений.
Организация многопоточности производится средством, указанным в таблице
Для каждого потока посчитать время выполнения. Программа должна
выводить следующую информацию о ходе выполнения потоков:
<имя файла изображения1> <ширина изображения1> <высота
изображения1> <прогресс обработки1>
<имя файла изображения2> <ширина изображения2> <высота
изображения2> <прогресс обработки2>
Построить график зависимости, указанной в таблице вариантов.
Средство реализации многопоточности: BackgroundWorker, исследование алгоритма обработки: По результатам параллельной обработки 10 различных
изображений построить график зависимости времени
работы алгоритма от площади изображения.
using SelectionSections;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace ImageEditing
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            openFileDialog.Filter = "PNG Изображения (*.png)|*.png|Все файлы(*.*)|*.*";
            saveFileDialog.Filter = "PNG Изображения (*.png)|*.png|Все файлы(*.*)|*.*";
        }
        private void generateButton_Click(object sender, EventArgs e)
        {
            if (pictureBox1 == null)
                return;
            ProgressDelegate progress = UpdateProgressBar;
            SortedList<string, object> parametrs = new SortedList<string, object>
            {
                { "source", (Bitmap)pictureBox1.Image },
                { "threshold", (double)10 }
            };
            GrowSection growSection = new GrowSection();
            growSection.Init(parametrs);
            growSection.StartHandle(progress);
            pictureBox2.Image = (Image)growSection.Result;
        }
        private void openButton_Click(object sender, EventArgs e)
        {
            if(openFileDialog.ShowDialog() == DialogResult.Cancel)
                return;
            string filename = openFileDialog.FileName;
            pictureBox1.Load(filename);
            MessageBox.Show("Файл загружен");
        }     
        private void saveButton_Click(object sender, EventArgs e)
        {
            if (pictureBox2 == null)
                return;
            if (saveFileDialog.ShowDialog() == DialogResult.Cancel)
                return;
            string filename = saveFileDialog.FileName;
            try
            {
                pictureBox2.Image.Save(filename);
                MessageBox.Show("Сохранено");
            }
            catch
            {
                MessageBox.Show("Невозможно сохранить изображение",
                                "Ошибка",
                                 MessageBoxButtons.OK,
                                 MessageBoxIcon.Error);
            }
        }
        private void UpdateProgressBar(double percent)
        {
            sectionProgressBar.Value = (int)System.Math.Round((decimal)percent);
        }
    }
}
 Я отвечу "build", и вы приступите к реализации точной спецификации, написав весь необходимый код. Я буду периодически отвечать "continue", чтобы побудить вас продолжать. Продолжать до завершения.