【发布时间】:2017-02-28 02:28:39
【问题描述】:
我正在使用 c# 为 pc 开发一个音乐播放器,一切似乎都很好,但是,我在从音乐目录加载所有音乐文件时遇到问题,因为它加载非常缓慢,并且在打开应用程序时需要一些时间,它可能需要 5 分钟,具体取决于音乐文件的数量。我认为这是因为我创建了一个循环来循环遍历每个音乐文件并获取元数据以及要为每个音乐文件加载到不同图片框的图片。
请帮助,我需要它更快。谢谢你。
代码如下...
public List<MusicDetails> Music_Library()
{
List<MusicDetails> files = new List<MusicDetails>();
string[] musicfolder = Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyMusic),"*mp3", SearchOption.AllDirectories);
for (int i = 0; i <musicfolder.Length; i++)
{
try {
files.Add(new MusicDetails
{
title = TagLib.File.Create(musicfolder[i]).Tag.Title,
genre = TagLib.File.Create(musicfolder[i]).Tag.FirstGenre,
artist = TagLib.File.Create(musicfolder[i]).Tag.FirstPerformer,
path = musicfolder[i],
CoverArt = OrganiseAlbums.SingleAlbumImage(musicfolder[i],true)
});
}catch(Exception)
{
// OMIT FILE
}
}
return files;
}
【问题讨论】:
-
如果您不显示此代码,您认为如何帮助您修复错误代码?
-
在后台使用图片和元数据的存根信息异步加载文件。在单独的线程中加载图片和元数据。
标签: c# performance optimization