Нарисовать фигуры из разных потоков - C#

Узнай цену своей работы

Формулировка задачи:

Создать Windows приложение. Четыре потока обращаются к статическому методу класса, для рисования линии. Метод принимает координаты начала и конца линии. Каждый поток должен с помощью этого объекта нарисовать замкнутую фигуру, каждый в своей области экрана

Решение задачи: «Нарисовать фигуры из разных потоков»

textual
Листинг программы
  1. public class Program
  2. {
  3.     [STAThread]
  4.     private static void Main()
  5.     {
  6.         Application.Run(new MyForm());
  7.     }
  8.  
  9.     private class MyForm : Form
  10.     {
  11.         public MyForm()
  12.         {
  13.             Text = "Форма";
  14.             ClientSize = new Size(400, 400);
  15.             StartPosition = FormStartPosition.CenterScreen;
  16.             Load += OnLoad;
  17.         }
  18.  
  19.         private void OnLoad(object sender, EventArgs eventArgs)
  20.         {
  21.             BackgroundImage = new Bitmap(ClientSize.Width, ClientSize.Height);
  22.             using (Graphics graphics = Graphics.FromImage(BackgroundImage))
  23.             {
  24.                 Task[] tasks =
  25.                 {
  26.                     Task.Run(() => Draw(graphics, new Point(0, 200), new Point(200, 0))),
  27.                     Task.Run(() => Draw(graphics, new Point(200, 0), new Point(400, 200))),
  28.                     Task.Run(() => Draw(graphics, new Point(400, 200), new Point(200, 400))),
  29.                     Task.Run(() => Draw(graphics, new Point(200, 400), new Point(0, 200)))
  30.                 };
  31.  
  32.                 Task.WaitAll(tasks);
  33.             }
  34.         }
  35.  
  36.         private static void Draw(Graphics graphics, Point start, Point end)
  37.         {
  38.             lock (graphics)
  39.             {
  40.                 graphics.DrawLine(Pens.Black, start, end);
  41.             }
  42.         }
  43.     }
  44. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы