Вверх ↑
Ответов: 273
Рейтинг: 29
#1: 2012-01-25 17:32:31 ЛС | профиль | цитата
sintet писал(а):
Схема пустяковая, лишние мултиэлементы замедляют программу.
Не замедлит. И будет проще разобраться. Гарантирую это.
sintet писал(а):
Там от силы замедление в 600-700мс. Может просто есть какие то другое решение, синхронизировать файловые операции с программными? Если для это придётся делать дополнительные опросы и вычисления, так лучше пусть таймер стоит.
Ну вот возьмем запуск streams.exe
Ты стартуешь его, и включаешь таймер. И так на каждый файл по 700мс.

А можно поставить в winexec ожидание завершения, и выкинуть таймер. Как разблокировка закончится, управление сразу перейдет на следующую ветвь хаба. Это сэкономит несколько сотен мс.

Есть еще вариант - если можно запустить несколько разблокировщиков параллельно, тогда стоит этим воспользоваться. Ставим асинхронный режим и быстренько прогоняем через winexec весь список - разблокировка пойдет в несколько потоков (даже в десятки потоков).
Если система не справится с такой нагрузкой - ограничить количество потоков в секунду, счетчиком или паузами в 10-100мс.

Еще продуктивнее - если streams.exe имеет опции для пакетной обработки файлов. Но скорее всего это не так, верно?
Хотя нет. Все-таки кое-какие имеет. Ключ S позволяет рекурсивную обработку директорий. Также поддерживаются знаки подстановки.
Можно добавить проверку: если добавляем директорию - не сканировать ее, а пометить. При обработке списка, при встрече строки, помеченной как директория, передавать ее приложению с ключом S - это значительно ускорит обработку, т.к. не будет уходить время на старт/стоп процесса.
карма: 0

0