指定した Google 検索に関連付けられた結果の数を並べ替えることができるプログラムを作成しようとしています。大きなテーブルが非常に速く必要なので、ループの使用を考えました。ただし、試すたびに、「System.Windows.Markup.XamlParseException」が原因でデバッガーがクラッシュします。
public long resultStat(string a)
{
var req = (HttpWebRequest)WebRequest.Create("https://www.google.ca/search?hl=fr&output=search&sclient=psy-ab&q=a" + a + "&btnK=");
using (req as IDisposable)
{
WebResponse rep = req.GetResponse();
Stream str = rep.GetResponseStream();
StreamReader rdr = new StreamReader(str);
string res = rdr.ReadToEnd();
rdr.Close();
//This is my code to get the number results (it works perfectly)
int index = res.IndexOf(">Environ");
int cond = 0;
string final = "";
try
{
while (res[++index] != '<')
{
if (cond-- == 0 && res[index] != '&')
{ final += res[index]; cond = 0; }
else if (res[index] == '&') cond = 5;
}
}
catch { return 0; }
string temp = "";
foreach (char i in final) if (i < 48 && i > 58) temp += i;
return Int64.Parse(temp);
}
}
このメソッド全体は、次のような for ループのメインで単純に使用されます。
public void main()
{
//Other code
for (int i = 0; i < 3; i++) resultStat(i.ToString()); // For example
//Other code
}
ループをコメントするか、1 担当者に下げるとすぐに、何も問題が発生しないため、それが問題であることはわかっています。私はもう試した:
HttpWebRequest().Abort(); キープアライブ = false;
うまくいきませんでした