Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
IT-AleX

Как убрать эффект подвисания программы?

05.09.2006, 14:56. Показов 3539. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть программа которая обрабатывает текстовые файлы...
на формочке два прогрессбара и два StaticText
через некоторое время (или если скажем переключился на другую программу а потом решил вернуться к своей) то создаётся эфект подвисания програмы... т.е. программа работает и обрабатывает файлы... но подвисает (появляются белые области) форма и даже в TaskManager винды пишет что программа висит, хотя она продолжает работать (видно по процессу обработки файлов в папке)...
как избавиться от этого эфекта зависа?
программа в C++ Builder 6, Borland Develop.Studio C++
Заранее благодарю.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.09.2006, 14:56
Ответы с готовыми решениями:

Как убрать эффект вдавливания с формы? (3d эффект)
Не знаю как задать по конкретней вопрос, поэтому выложу так: вот в местах, где стрелочки какой то стрёмный эффект 3d, все свойства...

Как убрать данный эффект
уважаемые форумчане, у меня к вам такой вот вопрос, т.к. я с ФШ работаю только второй день, не разобрался еще путем...вобщем мне нужно...

Как убрать эффект нажатия в TabLayout
Привет всем! При нажатии на tab на мгновение появляется соответствующий "эффект нажатия". Как сделать так, чтобы просто менялись...

11
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
05.09.2006, 14:57
Запускай обработку файлов в отдельном потоке.
0
IT-AleX
05.09.2006, 15:00
расширь плиз ответ...
я только учусь Сям...
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
05.09.2006, 15:37
Windows, как многозадачная ОС, позволяет выполнять паралельные операции внутри отдельной программы с помощью так называемых потоков (thread) или, как их еще называют, нити. По сути зто просто часть кода твоей программы. Любая программа по умолчанию всегда имеет один главный поток и может создать дополнительные по мере необходимости. В C++ Builder, если правильно помню, надо создать класс наследник от TThread и переопределить метод Execute. В нем тебе и надо разместить код обработки файлов. Подробности читай в справке C++ Builder.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
05.09.2006, 17:53
Уточнение к предыдущему посту. Вместо "внутри отдельной программы" следует читать "внутри отдельного процесса". Так будет правильнее.
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
05.09.2006, 22:00
bazile все сказал
0
kettle
05.09.2006, 22:57
А может в циклы добавить Application->ProcessMessages()?
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
05.09.2006, 23:01
можно, у меня даже такая ф-ция для MFC была создана

с теоретической точки зрения - это неправильный подход, с практической точки зрения - это зачастую проще и быстрее в реализации



С уважением,

Владимир
0
kettle
05.09.2006, 23:15
Судя потому, что на форме "два прогрессбара", стоит использовать потоки. Однако в неопределенно длинных циклах надо и ProcessMessages добавлять, теоретически.
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
05.09.2006, 23:20
Плохая идея. Раз есть задача которая не должна зависитеть от UI-потока программы, то логично эти дейсвтия вынести в отдельный поток.
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
05.09.2006, 23:28
В идеале, в потоке должна выполняться лишь логика имеющая отношение к выполняемой операции, которая должна быть абстрагирована от реализации UI.



Зачастую, чтобы упростить разработку, в небольших по размерам приложениях можно отступать от теории и идеалов



Хотя я бы все же рекомендовал учиться и следовать правильному подходу, именно на примерах таких маленьких приложений это проще всего сделать.



С уважением,

Владимир
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
05.09.2006, 23:44
Согласен с тобой, boombastik! Осьупление от "идеала" не является преступлением. Надо просто четко понимать почему сделан именно такой выбор.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.09.2006, 23:44
Помогаю со студенческими работами здесь

Эффект воды. Как убрать мерцание ?
WaterEffect.pas unit WaterEffect; interface uses Winapi.Windows, System.SysUtils, Vcl.Graphics, Math; const ...

Как убрать эффект на облаках с наложением?
Недавно работал в фотошоп, тыкал всё подряд и в итоге натыкал так что у меня появился вот такой эффект на облаках с наложением как это...

Как убрать эффект фокуса с button/TextBox?
Привет, всем! Подскажите как убрать синий фокус на кнопках или любых других активных элементах, который появляется при наводке и...

Как убрать эффект при наведении на изображение записи
Здравствуйте. При наведении курсора на изображение записи срабатывает эффект, при котором поверх изображения накладывается (постепенно,...

Как убрать эффект transform при другом разрешении экрана?
Имеется тогглер который появляется у меня при разрешении экрана 767px. При нажатии на который появляется правое боковое меню. Так вот у...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. На мобильном - сканируйте QR-код. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru