Лабораторная работа 1 - Разработка нового распределенного приложения для инструментария Alchemi

 

Метод, в котором производится обновление прогресса вычислений


 

public partial class MainForm : Form

{

    ...

 

    /// <summary>

    /// Обновляет изображение графика комплексной функции, время вычислений,

    /// а также текущий прогресс.

    /// </summary>

    /// <param name="thread">успешно завершившийся грид-поток</param>

    void UpdateProgress(GThread thread)

    {

        // Обновляем текущее значение полосы прогресса

        progressBarBuildGraph.Value++;

 

        // Обновляем затраченное время

        Text = "Complex Visual - " + (DateTime.Now - startTime).ToString();

 

        // Получаем упешно завершившийся грид-поток

        ComplexThread complexThread = (ComplexThread)thread;

 

        // Вычисляем координаты левого верхнего угла части изображения

        int startX = complexThread.HorNumber * complexThread.Width;

        int startY = complexThread.VerNumber * complexThread.Height;

 

        // Создаем объект Graphics для работы с изображением

        Graphics graphics = Graphics.FromImage(image);

 

        // Добавляем к общему изображению сгенерированную часть

        graphics.DrawImage(complexThread.Image, startX, startY);

 

        // Обновляем изображение комплексной функции

        pictureBoxGraph.Refresh();

    }

 

    ...

}