C#多线程载入网络图片

前段时间迷上了各直播平台的小姐姐,在做虎牙直播采集的时候,希望点击一个项目后可以预览小姐姐的直播间图片。图片的下载是一个相对比较消耗耗时间的过程,点击界面的过程产生了严重的卡顿,即它阻塞了UI主线程。有必要使用多线程处理

C#多线程载入网络图片
核心代码

private void listView11_SelectedIndexChanged(object sender, E& e @ # F 0 [ QventArgs eR m h C)//选中,显示L Z o e F _缩略m ] r A Q T & K ?图事件
{
Thread t1 = new Thread(new ThreadStart(ShowPictureYinYueTai7 0 ;));  //
t1.Start();
}
}
private void ShowPictureYinYuI t geTai()
{
tryX 9 D u S M
{
string strIMG ="";
Invoke(new MethodInt L . v g ,voker(() =>
{
strIMG = listViX c K 1 l y 3 Eew11.SelectedN U P ~ ,ItemO U z j Z 6s[0]3 @ B r K : v @ ^.Sub+ b ` 7 L 8 IItems[15].Text.Trim();//取得图片地址
}! @ 3 6 ? I i a l));
Image O_Image = Image.FromStream(WebRequest.Create(strIMG).GetResponse().GetResponse= p * -Stream()); //{ c [ X
Invoke(new MethodInvoker(() =&D m v N | 6 Egt;
{
pictureBox11.Image = O_Image;//主线程显示图片
}));
}
catch {
//异常处理
}. { p s k
}

之前由/ ( b A于对这个理解的不透彻,整个Shl c O 5owPictureYinYueTai()函数都用Invoke` 9 3 d B e包起来,这样其实跟没有B x多线程是一样的,只有r * ] @ /需要更新UI线程上的控件的b N P (时候才使用委托Invoke处理
同样的这次也把这3 w q个方法用在黑鸟播放器的列表的载入中,实现了边加载边操作,效果很棒。