|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.11.2016, 15:11 | #1 |
Пользователь
Регистрация: 24.10.2016
Сообщений: 21
|
Синхронизация Progressbar с потоком
Как грамотно синхронизировать Progressbar с потоком? Какие есть способы? Необходимо, чтобы Progressbar загружался в зависимости от времени выполнения потока.
Пробую так: Код:
|
06.11.2016, 15:31 | #2 |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
Код давай.
Программирую по необходимости
|
06.11.2016, 16:03 | #3 |
Пользователь
Регистрация: 24.10.2016
Сообщений: 21
|
Код:
Последний раз редактировалось factually; 06.11.2016 в 16:22. |
06.11.2016, 16:14 | #4 |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
1. При оформлении кода используй кнопочку # в редакторе (крайняя справа)
2. Это то, ради чего нужно Прогрессбар заводить? Не дать заснуть пользователю, пока 17 строк Мемо заполняются? Какая задача-то стоит? 3. Работать с визуальными компонентами из левого потока так, как ты делаешь, мягко говоря неправильно. Читай про метод Synchronize (например, тут). З.Ы. И вообще, откуда узнать априори, сколько времени займет выполнение потока? Не лучше ли привязаться к количеству фактически обработанной информации?
Программирую по необходимости
Последний раз редактировалось tsar_; 06.11.2016 в 16:20. |
06.11.2016, 16:20 | #5 | |
Пользователь
Регистрация: 24.10.2016
Сообщений: 21
|
Цитата:
3. Знаю, но тут суть не в этом, просто пытаюсь понять как грамотно засинхронить прогрессбар с потоком. В коде может быть что угодно, запросы в веб и пр. Если бы знал, то не спрашивал бы) Если фактически обрабатывать, то получится слишком много лишнего кода и не всегда точный результат. Последний раз редактировалось factually; 06.11.2016 в 16:28. |
|
06.11.2016, 16:39 | #6 |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
Ну вот отправили запрос на сервер... Откуда знать, когда ответ придет?
Общий рецепт мне не известен, но зная специфику задачи можно как-то выкрутиться. Например если имеем дело с обработкой большого количества однотипной информации (та же запись строк в мемо), то на основе анализа времени выполнения одной/нескольких последовательных операций нужно пробовать предсказать время выполнения оставшихся операций... Но опять же нужно заранее знать объем предстоящих операций.
Программирую по необходимости
|
06.11.2016, 16:43 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Прогрессбар есть смысл применять если заранее можно хотя-бы примерно оценить что будет выполняться. А так только пользователя в заблуждение будет вводить. И не обязательно из потока его дергать, можно просто форме из потока сообщения посылать с процентом выполнения и пусть она дергает свой прогрессбар
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.11.2016, 08:08 | #8 | |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
Цитата:
Грузить из базы в несколько потоков ?
Пишу много и развернуто
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с потоком | nibufep | Общие вопросы Delphi | 4 | 09.09.2015 14:32 |
Скачать потоком с ProgressBar | SawaMEN | Общие вопросы Delphi | 7 | 06.12.2013 12:50 |
Проблема с потоком | Aleksandr | Общие вопросы Delphi | 1 | 28.03.2013 18:45 |
Проблема с потоком! | vovken1997 | Общие вопросы Delphi | 2 | 12.04.2012 21:21 |
Проблема с потоком | Araver | Общие вопросы Delphi | 4 | 16.10.2007 04:30 |