Поиск и отображение множества изображений wpf - PullRequest
0 голосов
/ 31 января 2019

Я хочу показать много картинок.Для этого все картинки полны информации.Каждый раз, когда я хочу отобразить изображения определенной категории, я проверяю все изображения, каждое из которых имеет соответствующую метку, я разделяю ее и показываю.Это занимает много времени и программа останавливается.

Что мне делать?

IEnumerable<string> AllofItems; 
IEnumerable<string> CurrentofItems;
private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            AllofItems = GetFileList(@"E:\DL\newArtWork\Art").ToArray();
        }

 private void Listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

            foreach (var item in AllofItems)
            {
                var file = ShellFile.FromFilePath(item);
                var auth = file.Properties.System.Author.Value;
                if (listbox.SelectedItem.ToString().Equals(auth))
                   currentList.Add(item);
            }
            CurrentofItems = currentList;

            CurrentofItems.ForEachWithIndex((item, idx) =>
            {
                cover.Items.Add(item);
            });
        }

примечание: в каждой категории от 100 до 300 фотографий
примечание: в этом месте 9 тысяч файлов

E: \ DL \ newArtWork \ Art

1 Ответ

0 голосов
/ 01 февраля 2019

Это занимает много времени, и программа останавливается.

Из-за интенсивного характера операций ввода-вывода их необходимо разделить и обработать асинхронно, так какне замедлять поток обработки ввода-вывода, когда загруженные изображения становятся доступными.Это означает, что вам нужно поместить операцию в отдельный поток, чтобы не блокировать взаимодействие пользователя с программой.

См. Асинхронное программирование , чтобы начать работу по теме.

...