0

Web ページの読み込み速度に大きく依存するアプリケーションを構築しています。

C# の HttpWebResponse で良い結果が得られません。Chrome や IE などのインターネット ブラウザでより良い結果が得られています

ここに私が集めた統計があります:

HttpWebResponse (C#) = 17 秒 / 20 リクエスト

Chrome の Javascript/iFrame = 9 秒 / 20 リクエスト

IE 上の Javascript/iFrame = 11 秒 / 20 リクエスト

質問 #1 パフォーマンスを向上させるためにコードを最適化するためにできることはありますか?

質問 2 スタート ボタンを 2 回クリックして 2 つの接続を開くことができるので、ブラウザのパフォーマンスと同等のパフォーマンスを得ることができます。これはうまく機能しますが、リクエストを送信するWebサイトには制限があります。他のリクエストが完了する前に新しいリクエストを送信すると、接続が 10 分間ブロックされます。これを防ぐ方法はありますか?

私のスレッド:

void DomainThreadNamecheapStart()
{
    while (stop == false)
    {
        foreach (string FromDomainList in DomainList.Lines)
        {
            if (FromDomainList.Length > 1)
            {
                // I removed my api parameters from the string
                string namecheapapi = "https://api.namecheap.com/foo" + FromDomainList + "bar";

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(namecheapapi);
                request.Proxy = null;
                request.ServicePoint.Expect100Continue = false;

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream());

                status.Text = FromDomainList + "\n" + sr.ReadToEnd();

                sr.Close();
            }
        }
    }
}

マイボタン:

private void button2_Click(object sender, EventArgs e)
{
    stop = false;
    Thread DomainThread = new Thread(new ThreadStart(DomainThreadNamecheapStart));
    DomainThread.Start();
}

私の古い質問: HttpWebResponse のパフォーマンスを向上させるにはどうすればよいですか?

4

1 に答える 1

1

ボタンが押されるたびにスレッドを作成しています。スレッドの作成はコストがかかり、それ自体に時間がかかります。既存のスレッド プールのスレッドを使用してみて (試してくださいQueueUserWorkItem)、それが役立つかどうかを確認してください。

于 2012-12-29T00:45:16.107 に答える