Лабораторная работа 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();
}
...
}