Windows phone 7 使用WebClient.OpenReadAsync进行双重下载

Windows phone 7 使用WebClient.OpenReadAsync进行双重下载,windows-phone-7,asynchronous,webclient,Windows Phone 7,Asynchronous,Webclient,好的,在我的应用程序中,我需要下载两个数据列表来详细说明它们,但我不知道如何做到 我点击一个按钮,然后我认为下载几乎同时开始。这对我有好处,但不好的是,我的应用程序无法理解如何在执行任何其他操作之前等待下载 我知道存在设计问题,但我不知道如何解决 代码(或多或少)是这样的: private void button_Click(object sender, RoutedEventArgs e) { try { WebClient we

好的,在我的应用程序中,我需要下载两个数据列表来详细说明它们,但我不知道如何做到

我点击一个按钮,然后我认为下载几乎同时开始。这对我有好处,但不好的是,我的应用程序无法理解如何在执行任何其他操作之前等待下载

我知道存在设计问题,但我不知道如何解决

代码(或多或少)是这样的:

private void button_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            WebClient webClient = new WebClient();

            Uri uri = new Uri("http://myRESTservice");
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
            webClient.OpenReadAsync(uri); //this will set a private variableA

            dwnl();          

            doSomething(); //this will do something with A and B


        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }


private void dwnl()
    {
        try
        {
            WebClient webClient = new WebClient();

            Uri uri = new Uri("http://myRESTservice/anotherAddress");
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted_B);
            webClient.OpenReadAsync(uri); //this will set a private variableB

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

希望您理解这个问题。

当您的应用程序下载数据时,即调用了OpenReadAsync方法,您可能会显示忙指示。然后将从OpenReadCompleted事件处理程序中调用doSomething方法。 如果希望一个下载在另一个下载完成后进行,那么还可以从OpenReadCompleted事件处理程序中调用dwnl方法