は私のテストコードは次のとおりです。私はresult = index.ToString() + this.getresult().Result;
を使用する場合はなぜ遅いです、私はここでは、asp.netのWEBAPIテストアプリケーションを作成する.NETタスクの巣サブタスク
、応答時間は2秒です。 Thread.Sleep(100); result = index.ToString();
を使用すると、200msしか必要ありません。
public class HomeController : Controller
{
public string Test()
{
var listName = new List<int>();
for (int i = 0; i < 100; i++)
{
listName.Add(i);
}
var response = Task.WhenAll(listName.Select(sendrequest)).Result;
return string.Join(",", response);
}
public async Task<string> sendrequest(int index)
{
return await Task.Factory.StartNew(() =>
{
string result = string.Empty;
try
{
Thread.Sleep(100); result = index.ToString();
//result = index.ToString() + this.getresult().Result;
}
catch (Exception ex)
{
System.IO.File.AppendAllText("D:\\WebService\\FelixTest\\log.txt",ex.ToString());
}
return result;
}).ConfigureAwait(false);
}
public async Task<string> getresult()
{
await Task.Delay(100);
return "OK";
}
}
getresultメソッドの遅延を利用している可能性がありますか? – ThunD3eR
どのようにタイミングを測定していますか?あなたの「遅延」はわずか100(ms)ですので、2秒かかるはずはありませんが、アプリの実行に要する時間をどのように測定しているかは分かりません。 – Shaamaan