« 近況、ソースコードサイズの話 | トップページ | 最近の相場 »

2007.10.15

HttpWebRequestのアホ

 今日ハマったのはSystem.Net.HttpWebRequest。非同期に受信すべくBeginGetResponseを呼ぶものの、常に呼び出したスレッドでコールバックが呼ばれる。何かプロパティの設定があるのかと思っても見つからず。今回はhttpsでの接続でHTTPのPOSTメソッドだったのだが、これが関係あるのかは不明。
 だが、存在しないサイトにアクセスしにいってもDNS解決待ちでBeginGetResponseが悠々とブロックしにょるので呆れるばかり。なんてイモな実装なんだマイクロソフトよ。

 Webで探すと、それっぽい記事は見つかった。でも回答をみても.NET Frameworkの問題だとしか書いてない。

 まあ結論としては、別スレッドをこしらえて自前で同期するか、ThreadPool.QueueUserWorkItemあたりを使うかだな。BeginGetResponseは使用禁止!
 それにしてもこんな基本的(なはず)の問題がWebにも情報が少ないってのは、やっぱり.NETはみんないまいち使っていないのか?

 なおこの前書いた新連載はこちらにて公開となりました。全部読むにはユーザ登録が必要なのでちょっと面倒だけども、こんな感じで毎月ちょこちょこ書いていきます。これくらいなら仕事の合間の息抜きの範囲でできるしね。

|

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/73665/16769064

この記事へのトラックバック一覧です: HttpWebRequestのアホ:

» Dr.林の凄技FX! 10月26日20時~10月29日限定発売!!  [タケちゃんの気ままに生きるから]
【10/26 20時~期間限定販売】 【300名で終了】年率500%! ファンドの利益を「合法的に盗み取る」現役ファンドマネジャー Dr.林の 「ダイナマイトFX」売り切れが予想されるので、FXを真剣に成功させようと思っている方は、ぜひ、手に取ることを、オ...... 続きを読む

受信: 2007/10/27 14:39:37

コメント

DelegateのBeginInvokeもコールバックはことごとく別スレッドで呼ばれちゃいますよ。
しょうがないのでメインのhWndにSendMessageしてます。

投稿者: (2007/10/16 11:40:59)

コメントを書く