|
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
|
|
Обновление ProgressBar во время длительной операции26.09.2012, 19:30. Показов 3949. Ответов 12
Метки нет (Все метки)
Добрый вечер! У меня в цикле происходят длительные вычисления, поэтому я решил сделать вот что: во-первых, они выполняются в отдельном потоке, а во-вторых я прикрутил ProgressBar и на каждой итерации к полосе прогресса прибавляется значение шага. Количество итераций известно, поэтому значение шага равно 100/кол_во_итераций. Вычисления начинаются по нажатию на кнопку. Когда на нее жму, то фокус с этой кнопки не пропадает, а полоса прогресса не прибавляется, кажется как будто программа зависла. Как сделать так, чтобы при нажатии фокус исчезал, а полоса прибавлялась?
0
|
|
| 26.09.2012, 19:30 | |
|
Ответы с готовыми решениями:
12
Обновление ProgressBar-a во время загрузки SQLite DB при включении приложения Обновление ProgressBar из AsyncTask Обновление ProgressBar из основного потока |
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 26.09.2012, 20:10 | |
|
1
|
|
|
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
|
|||||||||||
| 27.09.2012, 16:07 [ТС] | |||||||||||
|
Написал, но работает ни чуть не лучше, чем было с потоками или вообще без них - также полоса заполняется в самом конце и программа по ходу зависает. Вот код с вычислением:
0
|
|||||||||||
|
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
|
|
| 02.10.2012, 16:47 [ТС] | |
|
Да, жалко конечно что моя задача настолько нетепична и нестандартна, что ни у кого даже мысли нету, как ее исправить или дать хотя бы совет
0
|
|
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 02.10.2012, 18:48 | |
|
та вроде все правильно, ничего нестандартного, все должно работать.
без проекта не разобраться... Добавлено через 1 минуту VozvedStep.setResult(result); вот это должно быть в onPostExecute
1
|
|
|
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
|
|
| 02.10.2012, 19:17 [ТС] | |
|
V0v1k, спасибо, но я этот кусок кода уже изменил, но все осталось также. Вот прикрепляю весь проект. А может такое быть, что от устройства зависит? Просто я на планшете проверяю, на виртуалке даже не запускал, сейчас попробую.
0
|
|
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 02.10.2012, 21:18 | |
|
зависает из-за этого - long res = mt.get();
0
|
|
|
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
|
|
| 02.10.2012, 22:56 [ТС] | |
|
V0v1k, ну я таким образом возвращаю посчитанный результат. А как тогда иначе?
0
|
|
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 02.10.2012, 23:20 | |
|
в onPostExecute.
1
|
|
|
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
|
|||||||||||
| 03.10.2012, 11:29 [ТС] | |||||||||||
|
V0v1k, благодарю за помощь, сделал вот так:
теперь onPostExecute выглядит следующим образом
0
|
|||||||||||
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 03.10.2012, 11:50 | |
|
в том проекте что вы выложили publishProgress не вызывается в цикле подсчета результата. может в этом проблема?
1
|
|
|
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
|
|
| 12.10.2012, 03:54 [ТС] | |
|
V0v1k, извини что долго не отвечал, это не решило проблему.. Ладно, потом на досуге займусь как-нибудь, спасибо большое за помощь)
0
|
|
|
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 29
|
||||||
| 13.12.2012, 23:35 | ||||||
0
|
||||||
| 13.12.2012, 23:35 | |
|
Помогаю со студенческими работами здесь
13
ProgressBar, отображающий ход длительной операции в Memo
На время длительной операции отображать заставку Обновление значения элемента Progressbar во время выполнения программы Выполнение длительной операции с выводом прогресса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|