質問

私は、ルータのページ

から64bはXMLを取得することで、インターネットの状況を取得し、C#での機能を持っています
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;

        }

Mozilla Firefoxの3.5&Firebugのアドオンを使用して、私は、それは通常、非常に巨大な500ミリ秒でしかしページを取得し、それは多くの場合、それに到達静止画制限するために、30ミリ秒を要する推測しました。どのように私はパフォーマンスを劇的に向上させることができますか?

事前に感謝します。

役に立ちましたか?

解決

は、Web応答を閉じていません。同じサーバーと閉じられていないのものをのレスポンスに要求を発行した場合、それが問題だ。

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;    
}

(私は...、同時に他のいくつかの変更を加えました)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top