我有一个列表视图,可以显示来自 YouTube 的视频结果。一切正常,但我注意到的一件事是它的工作方式似乎有点慢,这可能是由于我的代码。有什么建议可以让我做得更好吗?也许直接从网址加载图像而不是使用网络客户端?
我正在从使用 YouTube API 的查询返回的视频提要中循环添加 listview 项目。我认为减慢它的代码是这样的:
Feed<Video> videoFeed = request.Get<Video>(query);
int i = 0;
foreach (Video entry in videoFeed.Entries)
{
string[] info = printVideoEntry(entry).Split(',');
WebClient wc = new WebClient();
wc.DownloadFile(@"http://img.youtube.com/vi/" + info[0].ToString() + "/hqdefault.jpg", info[0].ToString() + ".jpg");
string[] row1 = { "", info[0].ToString(), info[1].ToString() };
ListViewItem item = new ListViewItem(row1, i);
YoutubeList.Items.Add(item);
imageListSmall.Images.Add(Bitmap.FromFile(info[0].ToString() + @".jpg"));
imageListLarge.Images.Add(Bitmap.FromFile(info[0].ToString() + @".jpg"));
}
public static string printVideoEntry(Video video)
{
return video.VideoId + "," + video.Title;
}
如您所见,我使用了一个 Webclient 来下载图像,因此我可以将它们用作列表视图中的图像。它有效,但我担心的是速度..有什么建议吗?也许一个不同的控制在一起?