Оптимальная система вывода множества графических объектов и их движение - C#
Формулировка задачи:
Здравствуйте программисты
У меня к вам следующий вопрос:
Есть большое количество(5000-20000) объектов(квадраты 2*2 определенного цвета) и их движение нужно вывести на экран. У каждого объекта типа dot есть свой поток, все объекты хранятся в List dots
Используя стандартные компоненты все работает нормально, но когда количество точек переваливает за 500 вместо отображения получаю красное перекрестие,
Код перерисовки
И вопрос есть ли более оптимальные и быстрые средства вывода?
А также для большого количества точек оправдано ли использование для каждой точки своего потока типа Thread или есть другие возможности?
protected void layoutform()
{
while (run)
{
Invalidate();
Thread.Sleep(50);
}
}
protected override void OnPaint(PaintEventArgs arg) // Перерисо-вать
{
label1.Text = "количество точек: " + koldot;
if (run)
{
foreach(dot d in dots)
arg.Graphics.DrawRectangle(pen1, d.GetdotX(), d.GetdotY(), 2, 2);
}
}Решение задачи: «Оптимальная система вывода множества графических объектов и их движение»
textual
Листинг программы
dx += r.NextDouble() - 0.5; dy += r.NextDouble() - 0.5;