Mr.Tの場所

特攻野郎Aチームじゃないよー

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  253  : 記事  0  : コメント  3733  : トラックバック  52

ニュース

  • 性別:男
  • 猫1:まる
  • 猫2:もろ
  • 猫3:にゃん左部郎
  • タバコ:男は黙ってJPS
[わんくま同盟] C#, VB.NET 掲示板

書庫

日記カテゴリ

Mr.Tです、こんにちは。

 いわゆる非同期で扱いたい場合の処理では、Threadを使いページのリロードを行いつつ結果をまたせる、という処理を行う。

 この手のものはよくあるのかもしれないのだが、そこで一つ重大な問題点がある。

 

 HttpContext.currentが取得できない!

 ちょうど、thread.start()のメソッドを実行したときから取得できなくなる。

 うーん、うーん、どーして?似たような事例がないかと思ったが、世界は広い。

 それが、コレ:http://www.velocityreviews.com/forums/t58163-httpcontext-is-nothing-in-new-thread-inside-a-control.html

 英語だが、そう難しい単語もないので、なんとか意味は取れたと思うが...

 原因わかってねーじゃん。パラメータとして渡せ、ってことしか書いてねえ。

 

 確かに、パラメータとして渡せばいけたんだけどさ...

 うーむ、うーむ...なんで? え? もしかして、わかってないの、オレだけ?

投稿日時 : 2007年9月3日 15:21

コメント

# re: HTTPContext Is Nothing 2007/09/04 2:40 なちゃ
HttpContextのCurrentは、簡単に言えばスレッドに結びついてるからですよ。
受け取ったパラメータをHttpContext.Currentに設定してやれば同じように動くと思いますけど、
何か弊害あるかもしれませんし、あんまり変なことはしないほうがいいかも。
あとは下手に複数スレッドでいじったら破綻しますよと。


# re: HTTPContext Is Nothing 2007/09/04 8:56 囚人
ワーカープロセスの預かり知らぬところでスレッドを作られると、ワーカープロセスのリスタート時におかしくなると言う話がどっかであったような。
スレッドプールから拝借するならば良いと MSDN に書いてたと思いますが、扱いが難しそう。

# re: HTTPContext Is Nothing 2007/09/04 11:17 なちゃ
おお?よくみたらブラウザに結果返した後でも裏で動かし続けるやりかどすか?
こういう方法は破綻をきたす可能性が高いのでやめた方がいいですよ。


Post Feedback

タイトル
名前
Url:
コメント