|
21 / 21 / 6
Регистрация: 09.01.2014
Сообщений: 118
|
|
Прерывание программы в процессе выполнения10.01.2014, 08:21. Показов 8044. Ответов 38
Метки нет (Все метки)
Доброго времени суток!
Подскажите, есть ли возможность прерывать программу во время выполнения? Т.е. у меня в программе есть цикл, который может выполняться много тысяч раз, сто выполнений цикла может происходить от 5 до 30 и более секунд, на каждых 100 циклах есть вывод промежуточных результатов. Если я по ним вижу, что эффективности я не получаю - я хочу перезапустить цикл с другими параметрами которые могу поменять не в коде, а до запуска цикла в самом интерфейсе программы, но остановить её могу только в компиляторе или диспетчере задач. Возможно ли как-то сделать так, чтоб программа не переставала реагировать на действия во время выполнения цикла?
0
|
|
| 10.01.2014, 08:21 | |
|
Ответы с готовыми решениями:
38
Динамическая линковка dll в процессе выполнения программы |
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
||
| 10.01.2014, 15:56 | ||
|
0
|
||
|
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
|
|
| 10.01.2014, 15:58 | |
|
Куда он денется У Windows все козыря в руках
0
|
|
|
21 / 21 / 6
Регистрация: 09.01.2014
Сообщений: 118
|
||
| 10.01.2014, 16:00 [ТС] | ||
|
Программу в этот момент могу закрыть только в диспетчере задач или остановить выполнение в компиляторе. Больше никак.
0
|
||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 10.01.2014, 16:03 | |
|
Если не консоль, то свои методы обработки событий есть. Но это уже другой раздел форума.
1
|
|
|
21 / 21 / 6
Регистрация: 09.01.2014
Сообщений: 118
|
|
| 10.01.2014, 16:05 [ТС] | |
|
alsav22, мне в С++ и WinAPI стучаться?
0
|
|
|
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
|
|||||||
| 10.01.2014, 16:08 | |||||||
|
Я не понял у вас windows? вы wiinapi используйте?? Там же просто в обработку сообщений (цикл) написать типа
1
|
|||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 10.01.2014, 16:13 | |
|
0
|
|
|
21 / 21 / 6
Регистрация: 09.01.2014
Сообщений: 118
|
|||
| 10.01.2014, 16:16 [ТС] | |||
|
Добавлено через 46 секунд
0
|
|||
|
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
|
||
| 10.01.2014, 16:17 | ||
|
ну найдите в коде должно быть
1
|
||
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
| 10.01.2014, 16:21 | |
|
Обрабатываешь клик по кнопке стоп, дальше есть несколько вариантов:
1. Меняешь глобальный флаг, который проверяется в цикле. Если итерации тяжеловесные, то проверка флага на длительности работы почти не скажется. 2. Делаешь переменную цикла глобальной и меняешь её, чтобы цикл завершился. Поганый вариант. 3. Делаешь указатель на переменную цикла глобальным и через него меняешь. Тоже погано, но есть вероятность, что такой вариант, по сравнению с предыдущим, позволит компилятору нормально применить оптимизации. 4. Делаешь глобальный указатель на функцию или класс, содержаций функцию отмены текущего действия. Перед входом в цикл присваиваешь эту штуку, перед выходом сбрасываешь в null. Ну а вызов метода выполняет отмену вычислений каким-либо образом. Для того, чтобы это вообще работало, нужно поместить вычисления в отдельный поток. Либо вызывать DoEvents (не знаю, есть ли нечто подобное в Си++), чтобы продолжалась обработка событий формы. Ну и в случае с DoEvents флаг - наиболее логичное решение.
1
|
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||
| 10.01.2014, 16:22 | ||
|
1
|
||
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
| 10.01.2014, 16:23 | |
|
Оу.. Пока я вернулся и написал пост тут уже столько всего появилось...
ilja123, если выполнение вычислений блокирует форму, то они происходят в том же потоке и никакие события до их завершения не произойдут. Если это не изменить, то никакие обработчики не помогут.
1
|
|
|
21 / 21 / 6
Регистрация: 09.01.2014
Сообщений: 118
|
||||||
| 10.01.2014, 16:35 [ТС] | ||||||
|
ilja123, Всё что нашел касательно ВинАПИ выглядит так
В общем спасибо всем, кто отозвался. Через несколько дней сдам её и больше не вспомню даже. Не буду на этом терять своё время и отнимать ваше.
0
|
||||||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||||||
| 10.01.2014, 16:52 | ||||||
|
Вставьте где-нибудь в цикл
0
|
||||||
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
| 10.01.2014, 17:10 | |
|
0
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 11.01.2014, 18:30 | |
|
0
|
|
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
| 11.01.2014, 23:46 | |
|
0
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 12.01.2014, 05:07 | |
|
Я так предполагаю, чтобы обработку исключений, которые не Exception, подсунуть тому же обработчику.
Но вообще-то этот код CBuilder делает сам, никому без особой просьбы не показывает и переписывает при изменениях без предупреждения. Так что что там и зачем простому смертному остается только догадываться.
0
|
|
|
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
|
|
| 12.01.2014, 10:22 | |
|
А может и не магия совсем. Вы видели какой код создает визуальный редактор HTML
0
|
|
| 12.01.2014, 10:22 | |
|
Выделение памяти в процессе выполнения функции Прерывание программы по ESC C++ Можно ли "подменить" тип данных в процессе выполнения? Подключение библиотеки в процессе выполенния программы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Теория всего 6. Судьба неотвратима?
anaschu 21.07.2026
Математическое доказательство Судьбы: Точка бифуркации в едином тензорном ядре Модели ВсегоСвежее обновление питоновского ядра «Soil Chemistry 2. 0» дало нам неопровержимое математическое. . .
|
Теория всего 5. ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
anaschu 21.07.2026
Единое ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
Главная задача «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы» (аттракторов. . .
|
сукцессия 37. Внедрил дипсик в свой оркестр из ИИ. У него закончилось пространство чата, потому опубликую выводы из его работы здесь
anaschu 21.07.2026
====================================================================
КОНТЕКСТ: Моделирование микоризной сукцессии (AM → ECM)
====================================================================
. . .
|
сукцессия 36. Делаю прогоны модели около порога бифуркации (превращения эндо микоризы в экто микоризу)
anaschu 21.07.2026
СУКЦЕССИЯ МИКОРИЗ: КАК МАТЕМАТИКА ОБЪЯСНЯЕТ ПОДЗЕМНУЮ ВОЙНУ
Мы привыкли думать, что лес — это деревья. А грибы — это то, что мы собираем в корзинку осенью. Но если заглянуть под землю, окажется,. . .
|
|
ИИ и человечность
kumehtar 21.07.2026
Забавно, что общаясь с ИИ, я замечаю, насколько он высказывается умно, и насколько верит в людей. Он умеет прощать. Он знает как отвечать не обесценивая опыт других людей, даже если сам не верит. Он. . .
|
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного.
1. Почему показания термометра заряжены целью?
Цель заложена в самом. . .
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|