【问题标题】:synchronizing webClient download (silverlight)同步 webClient 下载(silverlight)
【发布时间】:2010-09-24 14:22:57
【问题描述】:

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

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

【问题讨论】:

    标签: silverlight webclient


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我会查看Jeremy Likness 的博客。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-28
        • 1970-01-01
        相关资源
        最近更新 更多