C♯相談室 Part16
■ このスレッドは過去ログ倉庫に格納されています
0004デフォルトの名無しさん
NGNG「WebResponse res = req.GetResponse() as HttpWebResponse;」の箇所で何故か
”メモリが不足しています”というcatchできない例外が発生してしまいます。
メモリや不要リソースは意識してDispose()やnullしてるので、例外発生時でも余裕で700MBほど空いています。
一度に接続しているのは1本のみで、1本読み終わって次に移るようにしています。
色んなサイトのサンプル(@IT、Space仮面、緑単車等)で試して今は"as"でやってますが、
「HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;」を
「HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);」でやっていたときでも同じでした。
解決策のヒントだけでもおながいします。
// 最低限で書きましたが、実際にはそれぞれの処理でtry&catchしてます。
private void gethtml(string url, ArrayList htmlbuff) {
ArrayList txt = new ArrayList();
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
webreq.KeepAlive = true;
webreq.Timeout = 30 * 1000;
WebResponse res = req.GetResponse() as HttpWebResponse;
System.IO.StreamReader rd = new StreamReader(res.GetResponseStream(),
System.Text.Encoding.GetEncoding("euc-jp"));
while(true) {
string str = rd.ReadLine();
if(str == null) break;
htmlbuff.Add(str);
}
rd.Close();
res.Close();
}
■ このスレッドは過去ログ倉庫に格納されています