private bool _secondRequest;
public async Task<UserModel> RunSomeMethodAsync(UserModel model, bool mode = true)
{
// Some code here...
HttpClient client = new HttpClient();
var response = await client.SendAsync(request);
var responseContent = await response.Content.ReadAsStringAsync();
if (responseContent != "[]\r")
{
return await ProcessThisStringAsync(responseContent);
{
else if (responseContent == "[]\n" && !_secondRequest)
{
_secondRequest = true;
await RunSomeMethodAsync(model, false) // Run same method, different param
}
return model.Error = "An error has occurred";
}
明らかに何かが間違っていない限り、これは同期コードを使用して動作するはずです。このバージョンは非同期で実行されますか?私はTask.Delay(1000)を追加することを考えましたが、それはちょっとしたクルージングのようでした。非同期非同期/待機メソッドを再帰的に呼び出す
あなたはそれを並行して実行したいのですか?これはすでに非同期です。 – Rob
私は最初のレスポンスを待っていますが、それは空ではなく、処理して停止します。空の場合は、paramを変更してもう一度実行し、2番目の応答を取得して処理します。 –
それはそれがすることです。私はあなたがモデルを返すべきときに文字列を返すことに気がつきました。(また、それは再帰的に呼び出すためのものです - あなたが 'RunSomeMethodAsync(model、false)'を待つことができます)。あなたはどんな問題を正確に実行していますか?これは、コンパイルエラーが解決されたら、あなたが言うように正確に行います – Rob