1) Не ожидайте создания массива с сотнями тысяч имен файлов, а затем l oop через них, удаляющего их очень быстро
2) Файловая система, особенно если каталог находится на общий сетевой ресурс, подключенный диск или используемый другим приложением будет медленным и блокировать операции. Например, обработка, добавляющая новые файлы в каталог как можно быстрее, будет конфликтовать и, возможно, взаимоблокировать с одним, максимально быстро удаляя файлы из того же каталога.
3) Файлы могут быть заблокированы другим процессом
Попробуйте некоторые тесты a) Сколько времени занимает получение списка всех файлов, которые будут удалены? б) Сколько времени занимает удаление 1000 файлов подряд?
Одна система очереди, которую я разработал, имела большое количество файлов: несколько процессов создавали файлы, несколько процессов обрабатывали файлы, а затем удаляли файлы.
У нас было 3 каталога: Inbound, BeingProcessed и ForDeletion
Каждый новый файл помещался во входящий каталог. Другой процесс перемещал файл из входящего каталога в каталог BeingProcessed, открывал и блокировал файл, затем обработайте файл и переместите файл в каталог ForDeletion. Другой процесс удалит файлы в каталоге ForDeletion
.