5 / 5 / 2
Регистрация: 24.04.2011
Сообщений: 153
|
|
Пауза FindFirstFile12.06.2012, 21:50. Показов 1413. Ответов 7
Метки нет Все метки)
(
Хочется выслушать совет бывадых программеров - как сделать паузу или остановку рекурсивной процедуры, основанной на FindFirstFile и FindNextFile, по нажатию кнопки в форме Visual c++?!
0
|
12.06.2012, 21:50 | |
Ответы с готовыми решениями:
7
Работа с функцией FindFirstFile (API) Windows.h добавлен FindFirstFile не найден Как запустить пример для FindFirstFile |
![]() ![]() ![]() |
|
12.06.2012, 22:11 | |
Грубо говоря, у тебя есть некое длительное действие программы и хочется, чтобы пользователь мог прервать это действие. Здесь есть два способа.
1. В процессе длительного действия периодически опрашивать "а не нажал ли пользователь на кнопку" 2. Длительное действие запускать в отдельном потоке, а по нажатию на кнопку поток прибить. Конкретно в твоём случае длительное действие представляет собой обращение к операционной системе. Это действие твоя программа не может контролировать никак. Если в каталоге очень много файлов или каталог находится на сетевом диске или ещё по каким-то причинам сие действие может выполняться долго, а потому программа в этом месте будет висеть. Значит, первый пункт не поможет, а поможет пункт второй. В своей программе я именно так и делал. Процесс скачивания файла из инета выделен в поток, а всё остальное (фактически отрисовка gui) - в главном процессе
1
|
![]() ![]() |
||||||
12.06.2012, 22:38 | ||||||
Mustang92, собственно писал срузу здесь в редакторе, но в целом логика и вызовы верны. Вот некая абстрагированая реализация организации нити поиска и проверки нажатия нужного ключа в основном потоке для NT-платформы. Распараллеливание, как видишь, реализовал через Критическую секцию. Для её поддержки проект должен содержать process.h а также в опциях линковщика выставить поддержку run-time library Multythreaded
Собственно код ниже
1
|
![]() ![]() ![]() |
|
13.06.2012, 00:51 | |
-=ЮрА=-, твоя схема будет не будет адэкватно работать, если внутри FindFiles будут тормоза. Твой поток будет ровно так же висеть в ожидании завершения тормозов, как висит и основной процесс у ТС'а (в противном случае он навряд ли бы задал этот вопрос)
0
|
![]() ![]() |
|
13.06.2012, 07:29 | |
Evg, я понял о чем ты от замораживания программы спасаюсь с помощью PumpMessages.Один из моих диспетчеров уже позволчет производить навигацию в то время как несколько thread-нитей(по числу логических томов) ищут файлы.Единственным отдичием этого диспетчера является то что в памяти держу не WIN32_FIND_DATA а массив LPCITEMLIST как менее тяжеловесный при хранении
0
|
![]() ![]() ![]() |
|
13.06.2012, 09:39 | |
В данном случае я не совсем про замораживание. В твоём подходе программа замораживаться не будет, т.к. поиск идёт в потоке. Но у неё будет заторможенная реакция на действие пользователя "отменить построение списка файлов"
0
|
![]() ![]() ![]() |
||
13.06.2012, 15:41 | ||
Чтение списка файлов или скачивание данных из инета - безопасная операция, а потому её можно прерывать в любой момент
0
|
13.06.2012, 15:41 | |
Помогаю со студенческими работами здесь
8
FindFirstFile -получение корректного имени файла Как правильно передать в FindFirstFile путь к директории?
пауза консольного приложения Пауза при работе программы. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
|
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
|
Как некоторые отстают в навыках поиска информации в сети. Дублирование страницы открытого адреса в сети.
Hrethgir 17.05.2025
. . . берём бразуер, для многих он является инструментом поиска информации в сети. Понятное дело, что чтобы переходить по сслыкам есть такая фишка - "открыть в новой вкладке", но, представим себе что вы. . .
|
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
|
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
|
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
|
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
|
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
|
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
|
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
|