Нарисовать фигуры из разных потоков - C#
Формулировка задачи:
Создать Windows приложение. Четыре потока обращаются к статическому методу класса, для рисования линии. Метод принимает координаты начала и конца линии. Каждый поток должен с помощью этого объекта нарисовать замкнутую фигуру, каждый в своей области экрана
Решение задачи: «Нарисовать фигуры из разных потоков»
textual
Листинг программы
public class Program { [STAThread] private static void Main() { Application.Run(new MyForm()); } private class MyForm : Form { public MyForm() { Text = "Форма"; ClientSize = new Size(400, 400); StartPosition = FormStartPosition.CenterScreen; Load += OnLoad; } private void OnLoad(object sender, EventArgs eventArgs) { BackgroundImage = new Bitmap(ClientSize.Width, ClientSize.Height); using (Graphics graphics = Graphics.FromImage(BackgroundImage)) { Task[] tasks = { Task.Run(() => Draw(graphics, new Point(0, 200), new Point(200, 0))), Task.Run(() => Draw(graphics, new Point(200, 0), new Point(400, 200))), Task.Run(() => Draw(graphics, new Point(400, 200), new Point(200, 400))), Task.Run(() => Draw(graphics, new Point(200, 400), new Point(0, 200))) }; Task.WaitAll(tasks); } } private static void Draw(Graphics graphics, Point start, Point end) { lock (graphics) { graphics.DrawLine(Pens.Black, start, end); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д