![]() |
C++ Builder -> вопрос...(потоки?!)
Сорри за тупое название темы, в двух словах траблу не описать.
Есть форма, на которой происходит какой нить длительный процесс(в данном случае подгрузка а нимации и БД), необходимо отобразить TPRogressBar и показываьт на нем ход выполнения работы.. Собственно, как?! Как я понимаю надо юзать нити(потоки, Thread'ы), токо вот как конкретно?.. желательно с примерами... P.S. В Гугл и Поиск не посылать..... |
Вовсе не обязательно. При выполнении какого-нибудь цикла можно сделать так:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender) Если TThread, то достаточно создать наследный класс, скажем, TMyThread, в котором перекрыт абстрактный метод Execute, а также введен новый ShowMeth, который меняет значение ProgressBar. Где-нибудь в Execute необходимо вызвать метод Synchronize: Код:
Synchronize(ShowMeth); |
Грейт сенькс.... ;)
|
Море грейт плежерс :gigi:
|
C++ Builder->Определение фремени необходимого для завершения процесса
Есть очень длительный процесс(загрузка анимации и БД, к примеру). Нужно в TProgressBar показать прогресс выполнения этого процесса? Из этого следует вопрос - как можно орпеделить время необходимое на завершение процесса?
|
Допустим, известна некоторая мера, показывающая сколько нужно сделать, например, кол-во файлов, байт, строк матрицы и т.д., алгоритм устроен циклом for(i=0; i<imax; i++), то можно сделать вставку типа
Код:
// thread2: Код:
void SomeGuiClass::onTimer() |
Если известно сколько нужно сделать и сколько прошло времени, всё решается в пропорциях:
timeLeft = double(timeElapsed)*(work_to_do - work_done)/work_done |
Время: 15:20. |
Время: 15:20.
© OSzone.net 2001-