2010-03-09 7 views
2

내 프로젝트는 한 번에 여러 웹 페이지를 읽어야합니다 (예 : 특정 키워드 google은 최대 100 페이지 결과를 표시합니다). 'for'루프를 사용하여 100 페이지를 읽으려고했습니다. 그것은 C#에서 http 요청 예외를 보여주고 있습니다. 어떻게 정렬 기간 내에 해당 페이지를 읽을 수 있습니까 ???한 번에 여러 웹 페이지에 액세스하려면 #

+2

이미 작성한 코드를 게시하십시오. 그러면 도움이 될 것입니다. – AxelEckenberger

+0

두 가지 질문이 있지만 한 개는 아닙니다. 먼저 - for 루프에서 faste rthan을 수행하는 방법. 둘째 - 실제로 요청을 실수하지 않도록 도와주세요. 따라서 예외가 발생하지 않습니다. – TomTom

+0

당신은 다른 사람의 별명을 채택한 것처럼 보입니다. 이미 Nikhil K를 잘 알고 있습니다. 당신이 그를 존경하고 약간 다른 것으로 당신을 변화시킬 수 있습니까? – slugster

답변

1

병렬로 처리하려면 코드를 ThreadPool에 푸시합니다. 한 번에 100 개의 스레드를 실행하지 않습니다 (하지만 원하지는 않습니다).

0

내 생각 엔 처분 된 개체에 액세스하려고하거나 처분하지 않으므로 너무 많은 연결이 열려 있습니다.

몇 가지 코드를 추가하여 도움을 받으십시오.

0

여기 간단한 해결책이 있습니다. 하지만 병렬로 많은 요청을하는 것은 이 매우입니다. 따라서 동시 스레드 수를 줄이기위한 몇 가지 메커니즘을 수행해야합니다.

void QueueWorkItems() 
{ 
    for (int i = 0; i < 10; i++) 
     new Action<string>(Request).BeginInvoke("http://www.google.com/search?q=test&start=" + (i * 10), null, null); 
} 

void Request(string url) 
{ 
    //Process your request 
} 
+0

아니요, 각 결과에 다른 웹 사이트에 대한 링크 (URL)가 있음을 의미합니다. 액세스해야하는 모든 링크. – NikRED

관련 문제