0

私のコードの最も遅い部分は、次の行です。

        string responseString;
        var webRequest = WebRequest.Create(url);
        using (var response = webRequest.GetResponse())
        using (var sr = new StreamReader(response.GetResponseStream()))
        {
            responseString = sr.ReadToEnd();
        }
        return responseString;

複数の webRequest を「キューに入れ」、コードがページ要求間で HTML を解析している間にバックグラウンドでダウンロードする方法はありますか? 私がググることができる名前/方法はありますか?リンクやコードは大歓迎です!ありがとう!

*編集: 完全な getHTML() コードが追加されました

4

2 に答える 2

3

非同期メソッドを使用して、UI のブロックを解除し、そこでリクエストを処理できます。

しかし、投稿されたコード行はほとんど何もしないはずです。サーバーへのリクエストは、Response を呼び出すときに発生します。と:

var respone = webRequest.GetResponse();

を使用して UI のブロックを解除し、非同期の進行が完了した後にそれを処理します。

var response = webRequest.GetResponseAsync();
// or BeginResponse() ... EndResponse();

詳細については、次を 参照してください。 http://msdn.microsoft.com/en-us/library/86wf6409(v=vs.110).aspx

于 2013-07-22T09:24:26.113 に答える