同步webClient下载(silverlight)

时间:2010-09-24 14:22:58

标签: silverlight webclient

所以我有这个函数在我的程序中被多次调用。

    //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被分配了新源之后启动,但它似乎在它发生之前运行

2 个答案:

答案 0 :(得分:0)

我会通过Jeremy Likness查看此博客。

它使用corountines来帮助组织异步请求。我已经使用过这种方法并处理过类似的问题,我希望在几个异步任务之后进行操作。

答案 1 :(得分:0)

您希望使用WebClient.OpenReadAsync()而不是WebClient.DownloadStringAsync(),因为您想要读取二进制图像,而不是字符串。

然后当你获得流时,使用该流调用BitmapImage.SetSource()。