1

わかりました、私のアプリでは、データの 2 つのリストをダウンロードして詳しく説明する必要がありますが、その方法を理解できません..

ボタンをクリックすると、ほぼ同時にダウンロードが開始されると思います。これは私にとっては良いことですが、良くないのは、私のアプリケーションが他のことをする前にダウンロードを待つ方法を理解できないことです..

設計上の問題があることは知っていますが、それを解決する方法がわかりません..

コードは(多かれ少なかれ)次のようなものです。

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);
        }
    }

問題を理解していただければ幸いです..

4

1 に答える 1

2

アプリケーションがデータをダウンロードしている間、つまり OpenReadAsync メソッドが呼び出されている間、ビジー状態が表示される場合があります。次に、OpenReadCompleted イベント ハンドラー内から doSomething メソッドが呼び出されます。1 つのダウンロードが完了した後に別のダウンロードを実行する場合は、OpenReadCompleted イベント ハンドラー内から dwnl メソッドを呼び出すこともできます。

于 2012-05-11T15:27:05.130 に答える