2009-07-06 3 views
4

나는 일반적으로 30ms의 소요 내가 추측 모질라 파이어 폭스 3.5 & 방화범 부가 기능을 사용하여 라우터 페이지매우 느린 WebResponse를 트리거 시간 초과

public bool isOn() 
     { 
      HttpWebRequest hwebRequest = (HttpWebRequest)WebRequest.Create("http://" + this.routerIp + "/top_conn.xml"); 
      hwebRequest.Timeout = 500; 
      HttpWebResponse hWebResponse = (HttpWebResponse)hwebRequest.GetResponse(); 
      XmlTextReader oXmlReader = new XmlTextReader(hWebResponse.GetResponseStream());  
      string value; 
      while (oXmlReader.Read()) 
      { 
       value = oXmlReader.Value; 
       if (value.Trim() != ""){ 
        return !value.Substring(value.IndexOf("=") + 1, 1).Equals("0"); 
       } 
      } 
      return false; 

     } 

에서 64B XML을 검색하여 인터넷의 상태를 가져옵니다 C#에서 기능이 그러나 페이지를 가져 오는 것은 매우 거대한 500ms 한도에 머물러 있습니다. 성능을 어떻게 극적으로 향상시킬 수 있습니까?

미리 감사드립니다.

답변

9

웹 응답을 종료하지 않을 것입니다. 동일한 서버로 요청을 보내고 을 닫지 않은 경우 해당 응답은입니다.

스틱 using 문에 응답 :

public bool IsOn() 
{ 
    HttpWebRequest request = (HttpWebRequest) WebRequest.Create 
     ("http://" + this.routerIp + "/top_conn.xml"); 
    request.Timeout = 500; 
    using (HttpWebResponse response = (HttpWebResponse) request.GetResponse()) 
    using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) 
    {  
     while (reader.Read()) 
     { 
      string value = reader.Value; 
      if (value.Trim() != "") 
      { 
       return value.Substring(value.IndexOf("=") + 1, 1) != "0"; 
      } 
     } 
    } 
    return false;  
} 

(나는 ... 같은 시간에 몇 가지 다른 변경을했습니다)

+0

덕분에, 같은 멍청한 놈 문제에 대한 죄송합니다 ... – Luffy