StorageFolder.GetFilesAsync невероятно медленно:Более быстрый способ получить файлы из папки, чем StorageFolder.GetFilesAsync()?
- ~ 7 секунд для папки с ~ 3500 файлов
Назад в Windows Phone 8.0 Silverlight, я был в состоянии получить содержание CameraRoll гораздо быстрее (через MediaLibrary):
- < 1 второе для того же количества файлов
Есть ли возможности для ускорения GetFilesAsync
, или есть ли альтернатива для получения файлов в папке?
мне нужны файлы фотографий, чтобы немедленно извлечь информацию, такую как Geotag или DateTaken. Вы можете видеть, как быстро они загружаются с помощью Silverlight в моем приложении GeoPhoto, который я сейчас пытаюсь выполнить для подключения к UWP. Я уже реализовал кеширование (отображение геотаг и DateTaken с помощью пути к картинке), поэтому мне понадобится только путь для последующего запуска приложений. Фотографии, еще не сохраненные в кэше, могут отображаться позже (после длинного GetFilesAsync
-call), но важно предоставить пользователю то, с чем он может взаимодействовать, сразу после запуска приложения.
Вы пробовали пространство имен 'Windows.Storage.BulkAccess'? 'FileInformationFactory.GetFilesAsync' и' FileInformationFactory.GetVirtualizedFilesVector' могут быть быстрее. –
@RaymondChen - я просто попробовал метод FileInformationFactory.GetFilesAsync, чтобы узнать, было ли это быстрее, поскольку я никогда не использовал его раньше ... в хромом примере я испек с 10500 файлами, это 45-60 секунд, чтобы вернуться, похожее на 'StorageFolder.GetFilesAsync' раз. – WiredPrairie
Является ли ваша папка в индексированном месте (например, в библиотеке)? Если нет, тогда нет выбора, кроме как попасть на диск. Кроме того, вы попробовали «GetVirtualizedFilesVector»? Я предполагаю, что у виртуализованного вектора меньше работы, потому что он может создать контент лениво. –