ユーザーがメニューオプション(1-5)を入力して機能を実行し、結果を出力するコンソールアプリケーションがあります。C# - 200個のHTTP取得要求を実行して結果を出力する
いくつかのURLに200個のHTTP取得要求を実行し、すべての結果を戻し、いくつかの作業を行い、ユーザーに出力します。
この私の現在のコード:
Parallel.For(0, 200, i =>
{
String[] words = webApi.getSplittedClassName();
for (int j = 0; j < words.Length; j++)
{
wordsList.Add(words[j]);
}
});
とgetSplittedClassName:
今public string[] getSplittedClassName()
{
HttpResponseMessage response = null;
try
{
response = httpClient.GetAsync(url).Result;
}
catch (WebException e)
{
return null;
}
return parser.breakdownClassName(response);
}
、ユーザがオプション番号を入力するので、プログラムが必要な機能をexecutessし、その後、私は入れては、出力、私は非同期でhttp作業を行うことのポイントがないと思ったので、すべての同期しています。
問題は、要求を行うのに多くの時間がかかっていることです。約30〜40秒です。意味がありますか?
基本的に3つの機能があります.1つの要求を実行し、3つの要求を行い、200の要求を実行します。
200リクエストを実行してすべての結果を待つ最良の方法は何ですか? 1つのリクエストのみを送信するときと同じように同期する必要がありますか?
おかげ
なぜ200のGETリクエストを行いたいのですか?リクエストを1つに結合してサーバー上で処理し、ユーザーに出力したいものだけを返すことはできませんか? – DHP
いいえ私は、運動のその部分を傾けることができません。私は速く、ベストプラクティスで、200の要求を行う必要があります結果と出力を作業します。 –
なぜこれを非同期にしないのですか?同期が必要な理由はありますか? – StriplingWarrior