0

私は地下鉄アプリケーション開発に不慣れです。async と await キーワードの使用法を理解するのを手伝ってください。

私の知る限り、私たちは両方を同時に非同期にして待機していることを理解しました。

ただし、1 つのメソッド/関数が非同期として言及されている場合:-

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    Uri inputUri  = new Uri("http://examplewebservices");

    try
    {

   string result =  await httpClient.GetStringAsync(inputUri);

///
i have to do some operations on this string result here 
///

    }
    catch (Exception ex)
    {

    }
}    

1)別のスレッドが作成されるとどうなりますか?そして、その中のすべてが非同期で実行されますか?

2) ここで await キーワードは何をしますか?

3)非同期の場合、コード内に文字列の結果に対していくつかの操作を実行する必要がある場所があります。それが完了していない場合、エラーが表示されますか?

私を導き出してください。

前もって感謝します。

4

1 に答える 1

4

私のasync/awaitイントロを読んでください。

1)別のスレッドが作成されるとどうなりますか?そして、その中のすべてが非同期で実行されますか?

いいえ。メソッドは、完了していない操作にasyncなるまで同期されます。await

2) ここで await キーワードは何をしますか?

操作が完了するまで非同期に待機します。

この場合、メッセージ ループに戻り、ダウンロードの完了後に残りのメソッドを (UI スレッドで) 実行するようにスケジュールします。

3)非同期の場合、コード内に文字列の結果に対していくつかの操作を実行する必要がある場所があります。それが完了していない場合、エラーが表示されますか?

いいえawait。ダウンロードが完了するまで、メソッドの残りの部分は実行されません。

于 2012-07-29T13:33:00.750 に答える