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)