Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.209.66.87] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Возникла задача быстрого поиска файлов на диске (в папках и подпапках). Поскольку поиск вообще вещь не быстрая (хотя странно, неужто так сложно в этих нескольких мегабайтах файловой таблице поискать информацию) решил попробовать сделать поиск в нескольких потоках. Результат (по скорости) просто замечательный - скорость с разы выросла, но вот выдаваемый результат.... количество найденных файлов или такое же как при классическом однопотоковом поиске или меньше, но на чуть-чуть (из 50000 файлов плюс минус несколько сотен). Сколько ни копался ошибку найти не смог. Может вы сможете помочь Прикреплённый файлscan_manager.cpp (6,06 Кбайт, скачиваний: 185) Прикреплённый файлscan_manager.h (1,55 Кбайт, скачиваний: 164) |
Сообщ.
#2
,
|
|
|
пока понял только то, что почему-то в многопотоковом режиме некоторые папки не обрабатываются
|
Сообщ.
#3
,
|
|
|
Fireman
Надо проверять и выводить в лог GetLastError(), если FindFirstFile/FindNextFile вернули ошибку. Так хоть будет понятнее, что сломалось. |