Нарисовать фигуры из разных потоков - 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);
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д