Ресурсоемкий код и анимационные окна
Помогите, пожалуйста, решить проблему. У меня есть приложение, написанное на C++Builder 6. Приложение выполняет копирование большого объема данных и во время копирования отображает анимационное окно (анимацию копирования файлов к примеру) в отдельной форме. Код показа анимационного окна приблизительно следующий:
TFormAnimate* FormAnimate=new TFormAnimate(this);
FormAnimate->Show();
//ресурсоемкий код копирования
delete FormAnimate;
FormAnimate=NULL;
Проблема в том, что сам процесс копирования жрет столько ресурсов, что анимационное окно отображается с трудностями и запозданиями.
Вместо копирования может быть любой другой ресурсоемкий код.
Подскажите мне, пожалуйста, какие обычно методы решения данной проблемы. Я так понимаю, что это решается с помощью процессов (?).
Best Wishes,
Artiom Ivanov,
CubeReality Inc, L CEO
http://www.cubereality.com
Application->ProcessMessages();
Цитата:
Originally posted by Dmitrich
Попробуй вставить в код копирования:
Application->ProcessMessages();
Попробуй вставить в код копирования:
Application->ProcessMessages();
TProgressBar.
Цитата:
Originally posted by lexluther
Вместо копирования может быть любой другой ресурсоемкий код.
Подскажите мне, пожалуйста, какие обычно методы решения данной проблемы. Я так понимаю, что это решается с помощью процессов (?).
Вместо копирования может быть любой другой ресурсоемкий код.
Подскажите мне, пожалуйста, какие обычно методы решения данной проблемы. Я так понимаю, что это решается с помощью процессов (?).
Скорее с помощью потоков - при показе формы копирования запускай поток - и выставь ему приоритет. А этот поток должен обновлять форму с анимашкой или прогрессбаром - кому что нравится
- через Synchronize. Все будет работать нормально. Сейчас просто у тебя и форма рисуется и копирование идет в одном потоке.