| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Dialog |
| Автор: avk 31.8.2004, 23:06 |
| Есть диалоговое приложение работающее с базой. На чтение базы, сортировку и т.д. уходит некоторое время(3-5 сек.), т.е. программа как бы на время зависает. Хотелось бы сделать что бы в момент чтения базы на экране появилось окно с надписью Подождите и т.д. Вопрос: как это лучше реализовать. Заранее спасибо. |
| Автор: Manve 31.8.2004, 23:23 |
| Добавь поток, в котором проводишь чтение, сортировку и т.д. и дожидайся пока он не вернет результат работы или не завершиться. |
| Автор: JackYF 31.8.2004, 23:46 |
| В принципе, можно обойтись без потока просто на максимальное время (5с, допустим выведи модально формочку с надписью, поставь таймер, сработает - закрой и работай дальше) |
| Автор: Manve 31.8.2004, 23:48 | ||
Не красиво |
| Автор: AndyY 1.9.2004, 07:12 |
| avk скорее правильней операции с базой вынести в отдельный поток, а с диалогом давать возможность работы сразу. imho пока юзер осознает, что от него хотят, как раз все и заполнится. btw это действительно чистое время выполнения запроса? Такое время легко может теряться на заполнении ListCtrl большим числом записей, и бороться с этим нужно уже совсем другими методами. |
| Автор: Гость_avk 1.9.2004, 10:18 | ||
| А можно окно ожидания вывести в отдельный поток? Делаю так
В результате окно выводится после чтения базы... |
| Автор: avk 1.9.2004, 10:20 |
| Это был я. Забыл зарегистрится... |
| Автор: AndyY 1.9.2004, 12:12 |
| avk можно. А чтобы показалось пораньше, можно вызвать pW->UpdateWindow(); но смысл потока мне не ясен - все то-же, что и в основном. |