Сообщение Directory enumerate files async от 14.11.2024 14:54
Изменено 14.11.2024 16:01 HotDog
Re[2]: Военком отвечает на вопросы
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Где показывать ? Сколько в окне показывать (не миллион же!). И как показывать — последовательно или в произвольном порядке, то есть с произвольным скроллингом ?
По сути, у меня что то вроде эксплорера. Есть дерево каталогов (директориев) и пользователь просто клацает по директориям и хочет посмотреть что в них лежит. Понятно, что я не показываю все миллионы файлов за раз, но нужна быстрая реакция при выборе директория и возможность прервать загрузку. А сейчас это выглядит так — пользователь кликает на директорий и приложение "задумывается" на очень долго, т.к пока Directory.GetFiles все не вычитает, нам показывать нечего
PD>Начинаешь Directory.EnumerateFiles в отдельном потоке, заносишь данные в какой-то ArrayList с большой начальной емкостью (чтобы избежать насколько можно переаллокаций) и сразу же показываешь то, что поместилось в окне. Пока пользователь листает вперед, ArrayList дозаполняется.
PD>Увы, если надо показывать в произвольном порядке, это не пройдет — там лишь IEnumerable.
Сейчас взял IAsyncEnumerable и вот отсюда код, как идею https://github.com/dotnet/runtime/issues/809
PD>Где показывать ? Сколько в окне показывать (не миллион же!). И как показывать — последовательно или в произвольном порядке, то есть с произвольным скроллингом ?
По сути, у меня что то вроде эксплорера. Есть дерево каталогов (директориев) и пользователь просто клацает по директориям и хочет посмотреть что в них лежит. Понятно, что я не показываю все миллионы файлов за раз, но нужна быстрая реакция при выборе директория и возможность прервать загрузку. А сейчас это выглядит так — пользователь кликает на директорий и приложение "задумывается" на очень долго, т.к пока Directory.GetFiles все не вычитает, нам показывать нечего
PD>Начинаешь Directory.EnumerateFiles в отдельном потоке, заносишь данные в какой-то ArrayList с большой начальной емкостью (чтобы избежать насколько можно переаллокаций) и сразу же показываешь то, что поместилось в окне. Пока пользователь листает вперед, ArrayList дозаполняется.
PD>Увы, если надо показывать в произвольном порядке, это не пройдет — там лишь IEnumerable.
Сейчас взял IAsyncEnumerable и вот отсюда код, как идею https://github.com/dotnet/runtime/issues/809
Directory enumerate files async
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Где показывать ? Сколько в окне показывать (не миллион же!). И как показывать — последовательно или в произвольном порядке, то есть с произвольным скроллингом ?
По сути, у меня что то вроде эксплорера. Есть дерево каталогов (директориев) и пользователь просто клацает по директориям и хочет посмотреть что в них лежит. Понятно, что я не показываю все миллионы файлов за раз, но нужна быстрая реакция при выборе директория и возможность прервать загрузку. А сейчас это выглядит так — пользователь кликает на директорий и приложение "задумывается" на очень долго, т.к пока Directory.GetFiles все не вычитает, нам показывать нечего
PD>Начинаешь Directory.EnumerateFiles в отдельном потоке, заносишь данные в какой-то ArrayList с большой начальной емкостью (чтобы избежать насколько можно переаллокаций) и сразу же показываешь то, что поместилось в окне. Пока пользователь листает вперед, ArrayList дозаполняется.
PD>Увы, если надо показывать в произвольном порядке, это не пройдет — там лишь IEnumerable.
Сейчас взял IAsyncEnumerable и вот отсюда код, как идею https://github.com/dotnet/runtime/issues/809
PD>Где показывать ? Сколько в окне показывать (не миллион же!). И как показывать — последовательно или в произвольном порядке, то есть с произвольным скроллингом ?
По сути, у меня что то вроде эксплорера. Есть дерево каталогов (директориев) и пользователь просто клацает по директориям и хочет посмотреть что в них лежит. Понятно, что я не показываю все миллионы файлов за раз, но нужна быстрая реакция при выборе директория и возможность прервать загрузку. А сейчас это выглядит так — пользователь кликает на директорий и приложение "задумывается" на очень долго, т.к пока Directory.GetFiles все не вычитает, нам показывать нечего
PD>Начинаешь Directory.EnumerateFiles в отдельном потоке, заносишь данные в какой-то ArrayList с большой начальной емкостью (чтобы избежать насколько можно переаллокаций) и сразу же показываешь то, что поместилось в окне. Пока пользователь листает вперед, ArrayList дозаполняется.
PD>Увы, если надо показывать в произвольном порядке, это не пройдет — там лишь IEnumerable.
Сейчас взял IAsyncEnumerable и вот отсюда код, как идею https://github.com/dotnet/runtime/issues/809