sintet писал(а):
Схема пустяковая, лишние мултиэлементы замедляют программу.sintet писал(а):
Там от силы замедление в 600-700мс. Может просто есть какие то другое решение, синхронизировать файловые операции с программными? Если для это придётся делать дополнительные опросы и вычисления, так лучше пусть таймер стоит.Ты стартуешь его, и включаешь таймер. И так на каждый файл по 700мс.
А можно поставить в winexec ожидание завершения, и выкинуть таймер. Как разблокировка закончится, управление сразу перейдет на следующую ветвь хаба. Это сэкономит несколько сотен мс.
Есть еще вариант - если можно запустить несколько разблокировщиков параллельно, тогда стоит этим воспользоваться. Ставим асинхронный режим и быстренько прогоняем через winexec весь список - разблокировка пойдет в несколько потоков (даже в десятки потоков).
Если система не справится с такой нагрузкой - ограничить количество потоков в секунду, счетчиком или паузами в 10-100мс.
Еще продуктивнее - если streams.exe имеет опции для пакетной обработки файлов. Но скорее всего это не так, верно?
Хотя нет. Все-таки кое-какие имеет. Ключ S позволяет рекурсивную обработку директорий. Также поддерживаются знаки подстановки.
Можно добавить проверку: если добавляем директорию - не сканировать ее, а пометить. При обработке списка, при встрече строки, помеченной как директория, передавать ее приложению с ключом S - это значительно ускорит обработку, т.к. не будет уходить время на старт/стоп процесса.