Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
.NET 4.x

Почему графика тормозит компьютер

28.01.2023, 18:55. Показов 5201. Ответов 69
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему графика тормозит компьютер

Визуализация "летающий круг" для проверки цветов
внутри WinForms тормозит компьютер

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System; //circle.cs
using System.Drawing;
using System.Windows.Forms;
 
class circle: Form
{ public static void Main()
    { Application.Run(new circle());}
public circle()
    { Text = "circle";
      BackColor = System.Drawing.Color.Blue;
      ForeColor = System.Drawing.Color.Red;
      ResizeRedraw = true;
      Width = 600; 
      Height = 360;
    }
    protected override void OnPaint(PaintEventArgs dan)
    { Pen pen = new Pen(ForeColor);
 
Graphics dav = dan.Graphics;
SolidBrush BlueBrush = new SolidBrush(Color.Blue);
dav.FillRectangle(BlueBrush, 0, 120, 600, 200);
 
for (int k = 1; k <=5; k++)
    for (int x = -50; x <=50; x++)
        { int y=0;
          dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+195, 225, 10, -80);
          if (x< 50) y=-x/5;
          if (x< 25) y= x/5;
          if (x<-25) y=-x/5;
          if (x<-50) y= x/5;
 
          System.Threading.Thread.Sleep(10);
          dav.DrawEllipse(new Pen(Color.Orange, 3), x*k+195, 225, 10, -80);
        }
    }
}
Окно мышью не перемещается

Отчего торможение?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2023, 18:55
Ответы с готовыми решениями:

Тормозит отрисовка графика
Рисую chart-график в таймере циклом на 50000 точек. через банальный AddXY. Первые 2 секунды все отрисовывается хорошо, ничего не тупит....

Почему-то тормозит компьютерная графика
вот написал код, но почему-то тормозит. Можете, пожалуйста, объяснить почему и показать способы решения этой проблемы using System; ...

Почему тормозит BitArray
Вопрос и в том, почему может тормозить BitArray, и в том, как же это лучше исправить. Прилагаю анализ временных затрат и соответствующий...

69
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
02.02.2023, 12:02  [ТС]
Студворк — интернет-сервис помощи студентам
Предполагаю: через bat компилируется листинг c# winforms
где отсутствует строка лишняя

InitializeComponent();
0
Эксперт .NET
 Аватар для Usaga
14792 / 9566 / 1367
Регистрация: 21.01.2016
Сообщений: 36,068
02.02.2023, 13:29
Цитата Сообщение от DAV78 Посмотреть сообщение
где отсутствует строка лишняя
InitializeComponent();
Это InitializeComponent() лишняя строка? А вы понимаете, что она делает?
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
02.02.2023, 13:43
Цитата Сообщение от DAV78 Посмотреть сообщение
где отсутствует строка лишняя
InitializeComponent();


Добавлено через 4 минуты
Остаётся только добавить - что и следовало ожидать. А люди тут про разные фреймворки, зависимости, что такое решение и т.п. пытаются объяснить!
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
02.02.2023, 13:48
Цитата Сообщение от Usaga Посмотреть сообщение
Это InitializeComponent() лишняя строка?
ну в его случае она и правда лишняя, OnPaint от нее никак не зависит
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
02.02.2023, 14:23
DAV78, лови.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;
 
class Program
{
    [STAThread]
    public static void Main()
    {
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new Form1());
    }
 
  public class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
 
    private void Form1_Load(object sender, EventArgs e)
    {
      this.BackColor = System.Drawing.Color.Blue;
      this.ForeColor = System.Drawing.Color.Red;
      this.ResizeRedraw = true;
    }
 
    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
      BackgroundWorker bw = (BackgroundWorker)sender;
      DrawObj objOnDrawing;
      for (int k = 1; k < 6; k++)
      {
        for (int x = -50; x < 51; x++)
        {
          objOnDrawing = new DrawObj()
          {
            Color = Color.Magenta,
            Rectangle = new Rectangle(x * k + 195, 225, 10, -80)
          };
          if (bw.CancellationPending) break;
          bw.ReportProgress(0, objOnDrawing);
          System.Threading.Thread.Sleep(10);
          objOnDrawing.Color = Color.Orange;
          if (bw.CancellationPending) break;
          bw.ReportProgress(0, objOnDrawing);
        }
        if (bw.CancellationPending) break;
      }
    }
 
    public class DrawObj
    {
      public System.Drawing.Color Color { get; set; }
      public System.Drawing.Rectangle Rectangle { get; set; }
 
      public DrawObj()
      { }
    }
 
    private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
      DrawObj curObj = (DrawObj)e.UserState;
      Graphics g = this.CreateGraphics();
      g.DrawEllipse(new Pen(curObj.Color, 3), curObj.Rectangle);
    }
 
    private void Form1_Move(object sender, EventArgs e)
    {
      if (!backgroundWorker1.IsBusy)
      {
        Graphics g = this.CreateGraphics();
        g.Clear(this.BackColor);
        backgroundWorker1.RunWorkerAsync();
      }
    }
 
    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
      if (backgroundWorker1.IsBusy)
      {
        backgroundWorker1.CancelAsync();
        e.Cancel = true;
        formIsClosing = true;
      }
    }
 
    private bool formIsClosing = false;
 
    private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
      if (formIsClosing) this.Close();
    }
 
    private System.ComponentModel.IContainer components = null;
 
    protected override void Dispose(bool disposing)
    {
      if (disposing && (components != null))
      {
        components.Dispose();
      }
      base.Dispose(disposing);
    }
 
    private void InitializeComponent()
    {
      this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
      this.SuspendLayout();
      // 
      // backgroundWorker1
      // 
      this.backgroundWorker1.WorkerReportsProgress = true;
      this.backgroundWorker1.WorkerSupportsCancellation = true;
      this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
      this.backgroundWorker1.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.backgroundWorker1_ProgressChanged);
      this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
      // 
      // Form1
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(584, 322);
      this.Name = "Form1";
      this.Text = "Form1";
      this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
      this.Load += new System.EventHandler(this.Form1_Load);
      this.Move += new System.EventHandler(this.Form1_Move);
      this.ResumeLayout(false);
    }
 
    private System.ComponentModel.BackgroundWorker backgroundWorker1;
  }
}

Не по теме:

Чисто из спортивного интереса.

1
22 / 17 / 5
Регистрация: 03.03.2022
Сообщений: 77
03.02.2023, 06:45
Цитата Сообщение от DAV78 Посмотреть сообщение
System.Threading.Thread.Sleep(10);
Использовать остановку работы потока в GUI программах так себе идея. Отсюда и "тормозит", хотя по делу она лишь засыпает. Изучи асинхронные таймеры, это когда ты выделяешь отдельный поток и останавливаешь его, как второстепенный поток, а не основной, в которой у тебя весит вся программа.
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
03.02.2023, 14:44  [ТС]
Предыдущий скрытый гигантский листинг анимирует
визуализации те же что в начале темы да не тормозя
заодно избегая таймер применив абракадабры
и запася каталог дюжины файлов

Без паузы мной проверен цикл повторяющий рисование
и тоже тормозит

Применив таймер: моя анимация летающий шарик не тормозит
однако двигается анимация единственная

Алгоритм тормозящий позволяет внедрить анимаций несколько
и вообще все анимации подряд
поэтому ещё развиваю анимации именно тормозящие

Например накануне создана визуализация круговая диаграмма
рисующая случайные диаграммы
переведя на c# из qb64
ведь qbasic & qb64 & c# одно и то же почти
0
Эксперт .NET
 Аватар для Usaga
14792 / 9566 / 1367
Регистрация: 21.01.2016
Сообщений: 36,068
03.02.2023, 14:57
DAV78, на каком языке это написано? Вас сложно понять без бутылки.
3
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
03.02.2023, 15:32
Цитата Сообщение от Usaga Посмотреть сообщение
на каком языке это написано?
Либо автоматизированный перевод с инопланетного, либо нейросеть. Но нейросети вроде бы связный чистый разговор ведут (близкий к человеческой речи). Тут видимо контакт с внеземным разумом.

DAV78, вот это анимация.
3
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
03.02.2023, 15:55  [ТС]
Ссылка выше ведёт в тему НЕ c# и можно не смотреть
причём ссылающийся там не пишет

Визуализации как там про секторы
у есть мои на qbasic qb64 & c#
аж единственный краткий 1cs

Буквы игнорируемых не видны
и читая накануне темы "анимация"
сообщений 7 игнорируемых не встречал

Анимация закраска как по ссылке тоже у меня есть 1cs
однако пока лень экспериментировать с цветами ргб
и приходится раскрашивать в универсальный магента

Код там 220 строк у меня вмещается в 66 строк

Мог бы разместить живые гифы но незачем
да и вдруг игнорируемые подсмотрят
всё одно никто не сомневается
0
Эксперт .NET
 Аватар для Usaga
14792 / 9566 / 1367
Регистрация: 21.01.2016
Сообщений: 36,068
03.02.2023, 16:03
Цитата Сообщение от DAV78 Посмотреть сообщение
Ссылка выше ведёт в тему НЕ c# и можно не смотреть
Внезапно, OpenGL (на что ведёт ссылка) доступен в C# в виде библиотек-обёрток.

Цитата Сообщение от DAV78 Посмотреть сообщение
Код там 220 строк у меня вмещается в 66 строк
Только у вас через раз ничего не компилируется, да?
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
03.02.2023, 16:32  [ТС]
Вижу:
"Данное сообщение скрыто, так как этот находится в вашем списке игнорирования"

Зачем теряет время?
В темах "анимация" не встречался значит дельное не сообщит

Из-за подсматривающих игнорируемых и я листинги не добавляю

Зато могу все мои c# wf программы объединить в последовательные анимации в 1cs
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
04.02.2023, 15:15  [ТС]
Пятничные новости тормозящей анимации
напечатанной в блокнот и компилированной bat

Создана визуализация круговая диаграмма

Создаётся по секторам
и рядом все секторы одновременно
и ещё возможно разукрасить разнообразнее

В планах визуализация Рельеф
и заполнение области случайными точками
пока без визуализации графики gif

Самое время вспомнить
элементы управления c# Windows forms
0
04.02.2023, 15:20

Не по теме:

Детский сад, штаны на лямках.

0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
05.02.2023, 09:09  [ТС]
Благодарю мойдодыров за самостоятельное стирание
неизвестных сообщений игнорируемых

и в ответ на сообщение на странице ведущее в тему
про цвета и секторы круга:

у меня получается 1cs про то же тоже
анимация 60 кБ и ещё есть цветовая гамма
Изображения
 
0
Эксперт .NET
 Аватар для Usaga
14792 / 9566 / 1367
Регистрация: 21.01.2016
Сообщений: 36,068
05.02.2023, 12:20
DAV78, какой же ты молодец, дружище) Такое достижение)
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
10.02.2023, 13:00  [ТС]
Пятничные новости тормозящих анимаций

Создана визуализация: цветовая гамма
рисуется без пауз реально медленно
хотя небось решаемо

Листая темы вижу ляп форума:
спрашивающие результаты работы программ не сообщают
и проверят что якобы не получается 5% зрителей

Что ведёт в отсутствие контроля
и в отсутствие в будущем само презентации

Особенно заметно глядя алгоритмы вида Knapsack Рюкзак
где иногда часто выводится только результат без проверки
зато в теме форума никаких результатов не пишут

Поэтому мой алгоритм Рюкзак Knapsack qb64 c# c++ Python
здесь не размещаю

Неясно почему Python онлайн компилятор trinket.io
на форуме в страницы не встраивается
Миниатюры
Почему графика тормозит компьютер  
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
10.02.2023, 13:16
Цитата Сообщение от DAV78 Посмотреть сообщение
Поэтому мой алгоритм Рюкзак Knapsack qb64 c# c++ Python
здесь не размещаю
как будто он кому то нужен. ))))


у вас какая то нездоровая тема по поводу собственной исключительности. Это не приведет ни к чему хорошему.
1
bite
 Аватар для I can
5009 / 4817 / 852
Регистрация: 13.04.2015
Сообщений: 10,082
10.02.2023, 13:22
Цитата Сообщение от DAV78 Посмотреть сообщение
Поэтому мой алгоритм Рюкзак Knapsack qb64 c# c++ Python
здесь не размещаю
Выкладывать решения без кода - это нарушение Правил форума п.5.18
Запрещено размещать задания, коды программ и решения в виде картинок (кроме формул и блок-схем) и других файлов с их текстом.
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
10.02.2023, 19:19  [ТС]
цветовая гамма рисуется дюжиной строк вида

C#
1
d += e; for (y=d+e; y>d; y--) for (x=40; x < 206; x++) dav.Graphics.DrawEllipse((new Pen(Color.FromArgb(x,205-x,0),1)), x-40,y, 1,1);
аккуратно стиль форума: без начала и без конца
ведь очевидно все смогут анимировать сами

чему посвящена тема "анимация не компилируется"
Анимация WinForms C# не компилируется

и проверено: вся программа-гамма c# без "если" умещается в 1 строку
и длина \ вес \ объём 1cs 2500 байт
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2023, 19:19

Почему тормозит компьютер?
Комп при жаре тормозит нереально. Смотреть видео онлайн невозможно, вкладки браузеров грузятся очень медленно. В Диспетчере задач...

Почему-то тормозит компьютер
Вчера переустановил WinXP. И как-то странно начала работать система. Интрнет медленно загружается. Все файлы программ медленно...

Компьютер тормозит, компьютер раздражает
Сейчас проблема обострилась в своём идиотизме. Ставлю благодарно позаимствованный Assassin's Creed IV Black Flag - тормоза, хоть...

Тормозит графика
Ребят подскажите в чём дело, после непродолжительной работы, компьютер начинает зависать, а именно графика, ощущается явное торможение,...

тормозит графика при 24- и 32-битном цвете
При частой перерисовке прозрачных картинок (порядка 20-30 раз в секунду) наблюдаются ощутимые тормоза кто-нибудь знает как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru