Форум: "Начинающим";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];
Вниз"Подвисание" компьютера при работе рекурсии и цикла... Найти похожие ветки
← →
mufan (2007-11-10 15:45) [0]Доброго времени суток!
Имеем:
1. Рекурсивную функцию... внутри функции цикл for...
2. Все точки выхода отлажены... При выхове этой функции результат всегда достигается!
Вообщем логически механиз отлажен!
Что делаем:
1. Ставим, например, вызов этой функции на buttonclick.
2. Как известно, при наведении на кнопку курсор - стрелка (по дефолту)
3. жмем кнопку - вызывается функция
Проблемы:
1. Я знаю сколько всего раз программа окажется внутри цикла, перед тем как вернется в buttonclick. Это количество раз пусть будет 540000000 (540 млн.)... Я определяю время до вызова, время после вызова... Разница на моем компе 13 секунд...
2. Так вот эти 13 секунд прога "висит":
- мышь двигается, но курсор как был стрелкой (после кнопки), так и остается хоть куда его наводи
- щелчок по любому месту окна приводит к появлению в заголовке "... (Не отвечает)"
3. Через 13 сек. прогу "отпускает"!
+
я ставлю в цикле еще увеличивать позицию прогрессбара... тоже не работает...
Вопросы:
1. Как избежать подобного "зависания"...??? Например, можно панель на передний план "модально" вывести панель... Там написать "Ждите... Для прекращения нажмите Esc"! Как?
2. Как отлавливать в такой ситуации нажатие Esc и как прекратить операцию?
3. Как заставить ProgressBar все-таки отображать полоску...
Спасибо! =)
← →
Anatoly Podgoretsky © (2007-11-10 15:46) [1]> mufan (10.11.2007 15:45:00) [0]
Application.ProcessMessages
← →
mufan (2007-11-10 15:47) [2]
> я ставлю в цикле еще увеличивать позицию прогрессбара...
> тоже не работает...
максимальное количество я знаю... а текущее инкрементируется в глобальной переменной...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.048 c