我想显示很多照片。为此,所有图片都充满了信息。每次我要显示特定类别的图像时,我都会检查所有图像,每个图像都有相应的标签,然后将其分开显示。这会花费很多时间,程序会停止。
我该怎么办?
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
答案 0 :(得分:1)
这会花费很多时间,程序会停止。
由于操作的IO密集型性质,可能需要对它们进行拆分和以异步方式进行处理,以免在加载的图像可用时不减慢IO处理线程的速度。这意味着您需要将操作放在单独的线程上,以免妨碍用户使用该程序。
请参阅Asynchronous programming,以使您开始学习该主题。