Nous essayons d'identifier l'utilisation élevée du processeur dans les services dont nous disposons, et nous pensons qu'il existe quelques zones potentielles susceptibles de provoquer des boucles infinies. Voici un code qui, selon nous, pourrait causer une boucle infinie. Y a-t-il quelque chose de spécifique qui pourrait faire tourner la boucle while indéfiniment?Boucle infinie possible lors de la diffusion de la réponse
WebRequest request = WebRequest.Create(Url);
request.ContentLength = formDataLength;
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
using (Stream rs = request.GetRequestStream())
{
ASCIIEncoding encoding = new ASCIIEncoding();
var postData = encoding.GetBytes(formData);
rs.Write(postData, 0, postData.Length);
string str = string.Empty;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream sm = response.GetResponseStream())
{
int totalBytesRead = 0;
long responseBytesToRead = 1024;
byte[] buffer = new byte[responseBytesToRead];
int bytesRead;
do
{
bytesRead = sm.Read(buffer, totalBytesRead, (int)(responseBytesToRead - totalBytesRead));
totalBytesRead += bytesRead;
} while (totalBytesRead < bytesRead);
request.Abort();
str = Encoding.Default.GetString(buffer);
}
}
return str;
}
vous n'êtes pas en utilisant la ([classe WebClient] http://msdn.microsoft.com/en -us/library/system.net.webclient.aspx)? L'utiliser raccourcirait votre code à 4-5 lignes. – dtb