搜索并显示许多图像 wpf
Search and display many images wpf
我要显示很多图片。为此,所有的图片都充满了信息。每次我想显示特定类别的图像时,我会检查所有图像,每个图像都有相应的标签,我会将其分开并显示。花费大量时间,程序停止。
我该怎么办?
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
It takes a lot of time and the program stops.
由于操作的 IO 密集型性质,它们可能需要以异步方式拆分和处理,以免在加载图像可用时减慢 IO 处理线程。这意味着您需要将操作放在单独的线程上,以免阻碍用户使用该程序的体验。
请参阅 Asynchronous programming 以开始讨论该主题。
我要显示很多图片。为此,所有的图片都充满了信息。每次我想显示特定类别的图像时,我会检查所有图像,每个图像都有相应的标签,我会将其分开并显示。花费大量时间,程序停止。
我该怎么办?
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
It takes a lot of time and the program stops.
由于操作的 IO 密集型性质,它们可能需要以异步方式拆分和处理,以免在加载图像可用时减慢 IO 处理线程。这意味着您需要将操作放在单独的线程上,以免阻碍用户使用该程序的体验。
请参阅 Asynchronous programming 以开始讨论该主题。