Форум программистов, компьютерный форум, киберфорум
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. Показов 5085. Ответов 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
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,750
02.02.2023, 13:29
Цитата Сообщение от DAV78 Посмотреть сообщение
где отсутствует строка лишняя
InitializeComponent();
Это InitializeComponent() лишняя строка? А вы понимаете, что она делает?
0
2293 / 1609 / 400
Регистрация: 26.06.2017
Сообщений: 4,773
Записей в блоге: 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
2293 / 1609 / 400
Регистрация: 26.06.2017
Сообщений: 4,773
Записей в блоге: 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
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,750
03.02.2023, 14:57
DAV78, на каком языке это написано? Вас сложно понять без бутылки.
3
2293 / 1609 / 400
Регистрация: 26.06.2017
Сообщений: 4,773
Записей в блоге: 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
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,750
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
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,750
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
dive
 Аватар для I can
4994 / 4755 / 850
Регистрация: 13.04.2015
Сообщений: 10,001
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
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru