所以我有这个函数在我的程序中被多次调用。
//global variable
BitmapImage img;
private void LoadImageFile(string ImageName)
{
WebClient ImageClient = new WebClient();
ImageClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(ImageFileLoaded);
xmlClient.DownloadStringAsync(new Uri("/images/"+ImageName, UriKind.RelativeOrAbsolute));
}
void ImageFileLoaded(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
img.set = e.Result;
}
}
以下代码使用“img”的新值,所以我希望它只在img被分配了新源之后启动,但它似乎在它发生之前运行
答案 0 :(得分:0)
我会通过Jeremy Likness查看此博客。
它使用corountines来帮助组织异步请求。我已经使用过这种方法并处理过类似的问题,我希望在几个异步任务之后进行操作。
答案 1 :(得分:0)
您希望使用WebClient.OpenReadAsync()而不是WebClient.DownloadStringAsync(),因为您想要读取二进制图像,而不是字符串。
然后当你获得流时,使用该流调用BitmapImage.SetSource()。