Лабораторная работа 2 - Применение модели грид-потоков для внедрения в грид существующего приложения

 

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

 


 

public partial class MainForm : Form

{

    ...

 

    /// <summary>

    /// Обновляет прогресс рендеринга.

    /// </summary>

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

    private void UpdateProgress(GThread thread)

    {

        // Обновляем время рендеринга

        labelRenderTime.Text = "Render Time: " + (DateTime.Now - startTime);

 

        // Обновляем полосу прогресса

        if (progressBarRenderProgress.Value < progressBarRenderProgress.Maximum)

        {

            progressBarRenderProgress.Value++;

        }

 

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

        RenderThread renderThread = (RenderThread)thread;

 

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

        Graphics graphics = Graphics.FromImage(image);

 

        // Копируем сгенерированную часть изображения

        graphics.DrawImage(renderThread.Image, renderThread.StartCol, renderThread.StartRow);

 

        // Обновляем изображение

        pictureBoxImage.Invalidate();

    }

 

    ...

}