![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.10.2009
Сообщений: 15
|
![]()
Всем спасибо за предыдущие ответы! Все круто работает! Однако столкнулся с очередной проблемой, точнее, недоразумением каким-то.
В общем, есть алгоритм поиска строки в массиве. Он работает мега быстро. Просматривает массив из 43700 элементов меньше, чем за секунду. Но! С прошлой версии алгоритма, когда он работал настолько медленно, что казалось, программа зависла, остался закомментированный ProgressBar. Ради интереса, я его раскомментировал, и, чудо!, алгоритм заработал раз в 10 медленнее. Неужто прогрессбар тормозит выполнение кода? Прогресс у меня изменяется так: m_srcprg.SetPos(i_dic*100/43700); Казалось бы, очень простое выражение... У кого какие мысли? ![]() |
![]() |
![]() |
![]() |
#2 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Любое отображение информации на экране (попросту обновление/отрисовка) занимает гору времени (и следовательно замедляет все и вся).
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.10.2009
Сообщений: 15
|
![]()
Хм... я, грешным делом, полагал, что работа интерфейса и всяких там просчетов ведется в разных потоках или как-то так. А можно как-то сделать так, чтобы отрисовка прогресса не влияла на производительность полезного кода? Ведь если бы отрисовка действительно так тормозила всю программу, разработчики давно бы уже отказались от всяких красивостей.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
более менее мощные проги работаю в многопоточном режиме
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 | |
Новичок
Джуниор
Регистрация: 28.01.2013
Сообщений: 1
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
![]() Цитата:
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
![]() Цитата:
do not use your brain
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
действия выносятся в отдельный поток, и просто само окно уведомляется что +1 к прогрессу.(через PostMessage к примеру)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ProgressBar | mish@ | Общие вопросы Delphi | 2 | 27.05.2009 16:56 |
ProgressBar | Makarov | Компоненты Delphi | 3 | 04.02.2008 22:42 |
ProgressBar | Rahim1993 | Общие вопросы Delphi | 10 | 20.01.2008 21:28 |
ProgressBar | pentiumForever | Компоненты Delphi | 2 | 07.09.2007 13:33 |