1

Smartthreadpool を使用して次の関数をキューに入れています。しばらくするとすべてがスムーズに実行され、CPU は 98 ~ 99% まで上昇します。

dotTrace でスナップショットを撮ったところ、以下の関数がほとんどの CPU を使い果たしていることがわかりました。

    public string websocketExtended(string URL, int socketTimeOut)
    {
        string _html = "";
        HttpWebResponse _wResp;

        try
        {
            HttpWebRequest _wReq;
            System.Text.ASCIIEncoding _enc = new System.Text.ASCIIEncoding();
            _wReq = (HttpWebRequest)WebRequest.Create(URL);
            _wReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
            _wReq.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            _wReq.Method = "GET";
            _wReq.CookieContainer = cookieJarf;
            _wReq.KeepAlive = false;
            _wReq.Timeout = socketTimeOut;
            _wReq.ReadWriteTimeout = socketTimeOut;


            _wResp = (HttpWebResponse)_wReq.GetResponse();
            using (StreamReader sr = new StreamReader(_wResp.GetResponseStream()))
            {
                _html = sr.ReadToEnd();
            }


            cookieJarf = _wReq.CookieContainer;
            _wResp.Close();

        }
        catch (WebException wexc1)
        {
            if (wexc1.Status == WebExceptionStatus.ProtocolError)
            {
                return "";
            }

        }

        return _html;
    }
4

0 に答える 0