32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11

Как обновить контрол во время выполнения кода

17.06.2016, 11:59. Показов 6028. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Установил на форму ProgressBar (перед этим было текстовое поле) - результат одинаковый.
ProgressBar.Value=10;
функция 1;
ProgressBar.Value=20;
функция 2;
и т.д.
ProgressBar не обновляется. А вот если впихнуть в середину Messagebox.Sow(...) - то ProgressBar обновится с новым значением.
Тоже пробывал и с TextBox.Text.
Подскажите, друзья.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2016, 11:59
Ответы с готовыми решениями:

Засечь время выполнения (в ms) определённого кода или части кода
Доброго времени суток всем. Хотелось бы поинтересоваться у знающих людей. Как можно засеч время выполнения(в ms) определённого кода...

Время выполнения куска кода
В общем нужно реализовать точный подсчет времени выполнения отдельных кусков кода программы. Как можно такое реализовать? Заранее...

Как обновить контрол Form1 при закрытии диалогового окна Form2?
На Form1 есть dataGridView, вызывается Форм2 шоуДайлогом(), через которую добавляется информация в базу. И вот, при закрытии диалоговой...

30
Эксперт .NET
 Аватар для Rius
13302 / 7759 / 1685
Регистрация: 25.05.2015
Сообщений: 23,633
Записей в блоге: 14
19.06.2016, 17:55
Студворк — интернет-сервис помощи студентам
Другой - заставить форму затуманиться/размыться, но не зависнуть. Это сложнее делается.
0
Эксперт .NET
 Аватар для Usaga
14336 / 9429 / 1358
Регистрация: 21.01.2016
Сообщений: 35,554
19.06.2016, 17:59
Цитата Сообщение от Doctor_y Посмотреть сообщение
Вставил между ними Messagebox, контрол обновился
Это потому, что новый MessageBox вызывает обработку накопившихся событий. Чтобы повторить это вручную можно вызвать Application.DoEvents(). Но это грязный трюк.

Цитата Сообщение от Doctor_y Посмотреть сообщение
есть ли еще варианты, чтобы сообщить пользователю - подожди, мол, дружище
Да, есть. Запустить задачу в фоне (выше уже сказано как) и периодически обновлять прогресс.
0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 05:56  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Application.DoEvents(). Но это грязный трюк.
Цитата Сообщение от Doctor_y Посмотреть сообщение
Поставил Application.DoEvents(), не прокатило.
Цитата Сообщение от Usaga Посмотреть сообщение
Да, есть. Запустить задачу в фоне (выше уже сказано как) и периодически обновлять прогресс.
Каждая задача выполняется не более 10 секунд. Можно в фоне запустить задачу и в 1 секунду, только кому это надо.
Цитата Сообщение от Rius Посмотреть сообщение
заставить форму затуманиться/размыться, но не зависнуть. Это сложнее делается.
Это для "детей". "Разукрашивать" программу можно до бесконечности. Мне за 25 лет ни разу такое не понадобилось, но каждому свое кто то картинки рисует, а кто то данными управляет.
0
Эксперт .NET
 Аватар для Rius
13302 / 7759 / 1685
Регистрация: 25.05.2015
Сообщений: 23,633
Записей в блоге: 14
20.06.2016, 06:06
Цитата Сообщение от Doctor_y Посмотреть сообщение
Это для "детей".
Дети такое не осилят. Дети запускают длительные вычисления по Button_Click и вешают приложение загрузкой одного ядра в 100%, затем подпирая костылями типа ProcessMessages(), DoEvents(), Refresh().
0
Эксперт .NET
 Аватар для Usaga
14336 / 9429 / 1358
Регистрация: 21.01.2016
Сообщений: 35,554
20.06.2016, 06:49
Цитата Сообщение от Doctor_y Посмотреть сообщение
Можно в фоне запустить задачу и в 1 секунду, только кому это надо.
В каком смысле "кому это надо"? Как минимум тебе, раз ты тему эту создал.

Цитата Сообщение от Rius Посмотреть сообщение
Дети запускают длительные вычисления по Button_Click и вешают приложение загрузкой одного ядра в 100%, затем подпирая костылями типа ProcessMessages(), DoEvents(), Refresh().


Doctor_y, я честно не могу понять, почему эта тема разрослась на две страницы В чём проблема запустить задачу во втором потоке? Строчку кода лишнюю добавить неохото? Или код без костылей выглядит слишком скучным?)
0
20.06.2016, 06:50

Не по теме:

Проблема стара как мир: "я не хочу учить ничего нового, потому что предыдущие 100500 лет всё и так прекрасно работало"...

0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 06:59  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
В чём проблема запустить задачу во втором потоке?
Да никаких проблем, уже запустил сообщения в другом потоке. Просто был вопрос "можно ли перерисовывать контрол "насильно" в текущем потоке. Если бы ответ был в С# этого нельзя. На этом все и закончилось бы.
0
Эксперт .NET
 Аватар для Rius
13302 / 7759 / 1685
Регистрация: 25.05.2015
Сообщений: 23,633
Записей в блоге: 14
20.06.2016, 07:03
Ответ - в C# это можно. Но это говнокод. И алгоритм, которому это потребовалось, является примером говнокода. Потому что оконная система устроена иначе.

Покажите, что вы с потоками написали.
0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 07:14  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Ответ - в C# это можно
Как?
Цитата Сообщение от Rius Посмотреть сообщение
Но это говнокод.
Можешь называть это как тебе нравится, только не надо свое решение принимать за истину, это всего лишь мнение конкретного человека, пусть и заслуженного и авторитетного (опять же у определенной группы людей).
0
Эксперт .NET
 Аватар для Rius
13302 / 7759 / 1685
Регистрация: 25.05.2015
Сообщений: 23,633
Записей в блоге: 14
20.06.2016, 07:22
Это не моё решение, есть общеизвестные признаки. Нравится вам это или нет, неважно.
Как без потоков? Юным неокрепшим умам это повредит. Так что обойдёмся без демонстраций. Учитесь делать правильно.
Эти методы содержат неопределённое поведение, неочевидное для тех, кто хочет их применять в тяп-ляп-продакшене.

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте
0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 07:34  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Так что обойдёмся без демонстраций.
. Да, будем обходиться демагогией. Спасибо за помощь. У меня нет вопросов по этой теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2016, 07:34
Помогаю со студенческими работами здесь

Gif анимация во время выполнения кода
Хочу, чтобы во время выполнения кода метода авторизации крутилась гифка. Как я понял, для этого нужно вынести выполняемый код в отдельный...

Почему время выполнения unsafe и обычного кода примерно одинаково
Почему-то скорость выполнения сложных операций в с матрицами, элементы которых лежать в одномерном массиве получилась одинаковой для Unsafe...

Как сделать контрол внешне недоступным, но в то же время рабочим?
Мне нужно, чтобы контрол выглядел так, как будто у него свойство Enabled = false, но чтобы он в то же время работал.

Как удалить контрол с формы , если он создается во время выполнения программы
Здравствуйте . Вопрос в следующем. Допустим в течении работы программы пользователь щелкает на кнопке и создается GroupBox, причем...

Как обновить данные в JTable во время выполнения программы?
Господа, Я вывожу данные в таблицу T1(JTable), cvet2 -это новый символ, который я ввожу в таблицу. Мне нужно что бы на каждой итерации...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Опции темы

Новые блоги и статьи
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru