我有以下代码将照片从互联网直接加载到我的图片框(从内存中):
PictureBox1.Image = New Bitmap(New IO.MemoryStream(New Net.WebClient().DownloadData("LINK")))
这里的问题是下载WebClient时我的应用程序冻结,所以我认为我会使用DownloadDataAsync
但是,使用此代码根本不起作用:
PictureBox1.Image = New Bitmap(New IO.MemoryStream(New Net.WebClient().DownloadDataAsync(New Uri("LINK"))))
它返回错误“表达式不产生值”
答案 0 :(得分:1)
错误消息指出,您不能简单地将DownloadDataAsync
作为MemoryStream
参数传递,因为DownloadDataAsync
是Sub,而DownloadData
是返回{{1}的函数}。
要使用Bytes()
,请查看以下示例代码:
DownloadDataSync
下面是事件处理程序:
Dim wc As New Net.WebClient()
AddHandler wc.DownloadDataCompleted, AddressOf DownloadDataCompleted
AddHandler wc.DownloadProgressChanged, AddressOf DownloadProgressChanged ' in case you want to monitor download progress
wc.DownloadDataAsync(New uri("link"))