에서 첫 번째 Http 응답 받기 나는 5 개의 URL을 가지고 있으며 각 요청에 대해 HTTP 요청을 만들고 싶다. 그리고 조건이있는 첫 번째 응답을 기다리고있다.Parallel
List<string> urls; // url1, url2, ......
ParallelLoopResult result = Parallel.ForEach(urls, url=> GetTimeSlot(url));
private string GetTimeSlot(string url)
{
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)wr.GetResponse();
string responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet)).ReadToEnd();
if (responseString.Length < 6)
return ""; //PARALEL RESUME
else
return responseString; //PARALEL ENDS
}
나는 첫 번째 응답이 필요합니다. 병렬 처리가 가능합니까 아니면 더 좋은 방법이 있습니까? 감사.
는 확실히 다른 스레드가 결과를 업데이트하지 않습니다 있도록 잠금을 사용합니다. Throw 된 OperationCanceledException은 cts.Cancel();을 호출 할 때 기대하는 것입니다. 다른 예외이지만 OperationCanceledException 인 경우 WebRequest에 문제가 있음을 의미합니다. – Dynamikus
고맙습니다. 그것은 일했다!! 나는'자물쇠 '를 시험 할 것이다. –
np 행운을 빕니다 !!! – Dynamikus