我有一个列表视图,显示来自YouTube的视频结果。一切工作正常,但我注意到的一件事是,它的工作方式似乎有点慢,这可能是由于我的代码。有没有关于如何让这更好的建议?也许直接从url加载图像,而不是使用webclient?从URL到列表视图的图像
我正在使用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;
}
正如你可以看到我使用的下载图像,以便然后我可以在我的列表视图中使用它们作为图像的Web客户端。它的作品,但我关心的是速度..任何建议?也许不同的控制在一起?
你应该在一个单独的线程下载图像。该线程应该填充imageLists,但要小心访问UI线程。 –
@尼克你有什么例子吗?这是我第一次使用winforms我更像一个asp.net类型的家伙哈哈..感谢 – Andres
你可以发布你的代码填充信息数组吗? –