加载DataGridViewImageRow异步

时间:2018-03-07 15:02:10

标签: c# winforms asynchronous datagridview

因此,我为DataGridView加载了一组100多行,其中包含DataGridViewImageColumn

目前,我的代码正在等待req.GetImageFromURL(t)下载图像,然后才能将每一行添加到DataGridView,因为每行需要很长时间。在所有图像都已下载之前,DataGridView没有响应,并且所有图像都已下载添加的图片

有没有办法让DataGridView在视图中显示所有其他信息,然后在下载后显示图像。也许使用Async方法?

我目前如何为DataGridView

创建行
   foreach (var mast in x)
   {
       var t = req.GetUrl(mast.Id);
       mastGrid.Rows.Add(req.GetImageFromURL(t), a, b, c, d);
   }

我的GetImageFromUrl方法:

    public Image GetImageFromURL(string url)
    {
        HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse();
        Stream stream = httpWebReponse.GetResponseStream();
        return Image.FromStream(stream);
    }

0 个答案:

没有答案