1

我正在从互联网上获取一些图像并加载到我的 winform 中。一切正常,除了从慢速连接中获取图像时的时间延迟。我希望在后台获取图像,但 UI 不应变得无响应。

我尝试了“BackgroundWorker”,但没有奏效。有没有其他方法可以做到这一点?我读到了异步调用,但我不确定它是否对我有用。

后台工作者 ::

 foreach(String str in images )
            {
              BackgroundWorker bw=new BackgroundWorker();
              bw.DoWork += (s, e) => { run(str); };  // 
              bw.RunWorkerAsync();
            }

run()简单地将图像 url 设置为图片框。

4

1 回答 1

3

除了从创建 UI 对象的线程之外,您无法进行 UI 更新。

但是,您可以使用“Invoke”在类的主线程上进行调用。

Invoke( (Action)(() => { pictureBox.image = loadedImage; }) );
于 2012-08-12T07:20:04.277 回答