0

私はこの方法を持っています:

        private void sendSms(object url)
    {
        var Url = url.ToString();
        webRequest = WebRequest.Create(Url);
        //            webRequest.BeginGetResponse(this.RespCallback, webRequest);
        webResponse = webRequest.GetResponse();
        // End the Asynchronous response.
        var stream = new StreamReader(webResponse.GetResponseStream());
        var response = stream.ReadToEnd().ToString();
        if (response.Contains(Config.ValidResponse))
        {
            var queryString = HttpUtility.ParseQueryString(webRequest.RequestUri.Query);
            OnMessageAccepted(this, new MessageAcceptedEventArgs(queryString["SN"], "n/a"));
        }
        else
        {
            OnMessageAccepted(this, new MessageAcceptedEventArgs("", "n/a"));
        }
    }

このようなループ内で呼び出します

While (true)
{
    Send(url);
    sleep(400);
}

問題は、500 や 600 のような数百回の呼び出しの後、アプリケーションを再起動すると、呼び出しのパフォーマンスがますます遅くなり、非常に高速で良好に起動しますが、速度が低下し始めることです。高速に保つために時々クリアする必要があるバッファまたはキャッシュがあるかどうか疑問に思っていましたか?

ps:私はサーバーを開発したので、サーバーがそれを遅くしないと確信しています。さらに、私が開発し、他の人によって開発された別の種類のサーバー実装でそれを試しました。

前もって感謝します。

4

1 に答える 1

1

usingブロックを使用して応答と応答ストリームを破棄する必要があります。

于 2011-01-24T14:27:41.523 に答える