0

リモート URL 文字列を取得するには、以下のような方法があります。

public string FnGetURLContent(string _QsURL)
        { 
            string _Return = "";

            try
            {    
                HttpWebRequest _HttpWebRequest = (HttpWebRequest)WebRequest.Create(_QsURL);
                _HttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)";

                _HttpWebRequest.MaximumAutomaticRedirections = 4;
                _HttpWebRequest.MaximumResponseHeadersLength = 4;

                _HttpWebRequest.Credentials = CredentialCache.DefaultCredentials;
                HttpWebResponse _HttpWebResponse = (HttpWebResponse)_HttpWebRequest.GetResponse();

                Stream receiveStream = _HttpWebResponse.GetResponseStream();

                encoding format. 
                StreamReader _StreamReader = new StreamReader(receiveStream, Encoding.UTF8);

                _Return = _StreamReader.ReadToEnd();
                _HttpWebResponse.Close();
                _StreamReader.Close();

            }
            catch (WebException _WebException)
            {
                _Return = "";
            }

            return _Return;

        }

メソッドが実行されると、メソッドの処理が完了するまでフォーム UI がフリーズします。コードを改善するにはどうすればよいですか?

前もって感謝します

4

4 に答える 4

2

非同期バックグラウンド ワーカーを使用して「コードを改善」できます。クラスはこちら

于 2013-03-25T13:36:49.987 に答える
2

_HttpWebRequest.GetResponseAsync() を使用して、受信後に別のスレッドで応答データを処理できます。

于 2013-03-25T13:39:21.187 に答える
0

これが node.js の人生の目的です。重要なのは、これを非同期にすることです。あなたのケースについては、 msdn docs hereを参照してください。

于 2013-03-25T13:41:01.327 に答える
0

これを行うには多くの方法があります。あなたはこれを行うことができます:

  1. .net 4.5 に付属する async と await というキーワードを使用できます ( Link ) 。
  2. バックグラウンドワーカーを使用できます(リンク
  3. 新しいスレッドを開始できます ( Link )

目標を達成する方法は他にもたくさんあります

于 2013-03-25T13:39:39.360 に答える