我正在从互联网上获取大量图片并加载到我的winform中。除了从慢速连接中提取图像的时间延迟外,一切正常。我希望在后台获取图像,但UI不应该没有响应。
我试过了'BackgroundWorker',但它没有用。有没有其他方法这样做?我读到了异步调用,但我不确定它是否适用于我。
后台工作人员::
foreach(String str in images )
{
BackgroundWorker bw=new BackgroundWorker();
bw.DoWork += (s, e) => { run(str); }; //
bw.RunWorkerAsync();
}
和run()
只是将图片网址设置为图片框。
答案 0 :(得分:3)
除了从您创建UI对象的线程外,您无法进行UI更新。
然而,您可以使用"Invoke"在班级的主线程上进行调用。
Invoke( (Action)(() => { pictureBox.image = loadedImage; }) );