Ajustando o tempo limite de conexão HttpWebRequest em c #

Acredito que depois de longa pesquisa e pesquisa, eu descobri que o que eu quero fazer é, provavelmente, melhor servido através da criação de uma conexão assíncrona e terminá-lo após o tempo limite desejado ... Mas vou em frente e perguntar de qualquer maneira!

Snippet rápido de código:

HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(url);
webReq.Timeout = 5000;
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse(); 
// this takes ~20+ sec on servers that aren't on the proper port, etc.

eu tenho umHttpWebRequest método que está em um aplicativo multiencadeado, no qual estou me conectando a um grande número de servidores da web da empresa. Nos casos em que o servidor não está respondendo, oHttpWebRequest.GetResponse() está demorando cerca de 20 segundos para terminar, mesmo que eu tenha especificado um tempo limite de apenas 5 segundos. No interesse de passar pelos servidores em um intervalo regular, eu quero pular aqueles que levam mais de 5 segundos para se conectar.

Então a questão é:"Existe uma maneira simples de especificar / diminuir um tempo limite de conexão para um WebRequest ou HttpWebRequest?"

questionAnswers(5)

yourAnswerToTheQuestion