0
有谁知道好主意如何将结果返回给UI线程? 我写了这段代码,但它会编译错误,因为它不能在异步中返回“img”。如何将结果返回到Windows Phone中的UI线程?
public byte[] DownloadAsync2(Uri address)
{
byte[] img;
byte[] buffer = new byte[4096];
var wc = new WebClient();
wc.OpenReadCompleted += ((sender, e) =>
{
using (MemoryStream memoryStream = new MemoryStream())
{
int count = 0;
do
{
count = e.Result.Read(buffer, 0, buffer.Length);
memoryStream.Write(buffer, 0, count);
} while (count != 0);
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
if (e.Error == null) img = memoryStream.ToArray();
});
}
}
);
wc.OpenReadAsync(address);
return img; //error : Use of unassigned local variable 'img'
}
感谢您的回复。我不熟悉Action。你会告诉我如何在使用中使用Action吗? –
2012-02-23 14:07:52
我想你的代码中有一个小姐。 “if(e.Error!= null)”应该是“if(e.Error == null)”。我修好了,我确认了它的工作。 – 2012-02-24 16:26:40
是的,谢谢.... – Ku6opr 2012-02-24 18:47:35