搜索并显示许多图像WPF

时间:2019-01-31 19:21:01

标签: c# wpf image ienumerable

我想显示很多照片。为此,所有图片都充满了信息。每次我要显示特定类别的图像时,我都会检查所有图像,每个图像都有相应的标签,然后将其分开显示。这会花费很多时间,程序会停止。

我该怎么办?

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张照片
注意:此位置有9000个文件

  

E:\ DL \ newArtWork \ Art

1 个答案:

答案 0 :(得分:1)

  

这会花费很多时间,程序会停止。

由于操作的IO密集型性质,可能需要对它们进行拆分和以异步方式进行处理,以免在加载的图像可用时不减慢IO处理线程的速度。这意味着您需要将操作放在单独的线程上,以免妨碍用户使用该程序。

请参阅Asynchronous programming,以使您开始学习该主题。