完成回调DownloadStringAsync以显示信息

时间:2012-03-28 09:31:28

标签: c# silverlight windows-phone-7

我正在编写一个WP7应用程序,它使用WebClient的{​​{1}}方法获取网站信息。 DownloadStringAsync在显示之前解析文本。

以例如:

DownloadStringCompletedEventHandler

我遇到的问题是,在foo() { ... getAllTheWebsiteInfo() ... // display the downloaded, parsed text [1] ... } getAllTheWebsiteInfo() { ... DownloadStringAsync() ... } 点,文本为空(默认值)。

[1]是否有办法知道foo()何时完成解析文本,以便在那时我可以正确显示下载的解析文本?

1 个答案:

答案 0 :(得分:1)

您应该只调用在事件处理程序末尾更新UI的方法,而不是在foo方法中设置文本,如下所示:

private void OnDownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    DoParsingStuff(e); // do parsing stuff - may or may not be in it's own method ;)

    UpdateUI(); // this would contain your code to update the UI,
                // just as the name says
}

而不是你的方法,基本上是这样的:

private void foo()
{
    // ...

    getAllTheWebsiteInfo(); // as shown above

    // ??? waiting stuff ???

    UpdateUI();
}