我有一個控制檯應用程序,用戶在其中輸入一個菜單選項(1-5),執行一些功能並輸出結果。C# - 執行200個http獲取請求並輸出結果
其中一項功能是對某個url執行200個http get請求,將所有結果返回,對它們執行一些操作並輸出給用戶。
這是我當前的代碼:
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個請求並等待所有結果的最佳選擇是什麼?它應該是同步的,就像我只發出一個請求一樣?
感謝
爲什麼你想要做200個GET請求?你能否將請求合併到一個服務器上,然後在服務器上進行處理,然後將你想要輸出的內容返回給用戶? – DHP
沒有,我不能,它的一部分練習..我需要做200個請求,並在最佳實踐中,工作的結果和輸出。 –
爲什麼你選擇不這樣做異步?是否有一個理由,它應該是同步的? – StriplingWarrior