我有一個列表視圖,顯示來自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
你可以發佈你的代碼填充信息數組嗎? –