- PR -

WEBコントロールはスレッドセーフ?

1
投稿者投稿内容
ax
常連さん
会議室デビュー日: 2004/04/07
投稿数: 34
お住まい・勤務地: 東京
投稿日時: 2006-02-20 19:45
質問:WEBコントロール(System.Web.UI.WebControls)のイベント(onclickなど)は
スレッドセーフで動作するのでしょうか。

状況:ボタンを押すと登録処理を行い、画面遷移を行うページがあります。そこで2重送信防止のため、画面にGUID値を埋め込み、クライアントからのリクエストが有効なのかをサーバで判定し、有効の場合は登録を行い画面遷移、無効の場合は画面遷移のみを行っています。
このような動作を実装する場合、ボタンのonclickイベント内を同期(SyncLock)する必要があるのでしょうか。現状では、ボタンを連打してみてもスレッドセーフで動いているように見えるのですが、確信が持てないのです。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-20 19:59
引用:

質問:WEBコントロール(System.Web.UI.WebControls)のイベント(onclickなど)は
スレッドセーフで動作するのでしょうか。


質問としたいことがイマイチはっきり理解できなかったのですが、特別な事をしなければスレッドセーフではないでしょう。
具体的に何の同期をとって何をしたいのでしょうか?

_________________
囚人のジレンマな日々
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-22 22:29
 スレッドセーフなのかなぁ?

 同じブラウザから発せられたリクエストであっても、「別のリクエスト」なのですから、完全に別の「オブジェクト」が割り当てられます。
 ブラウザに対して複数のレスポンスが返りますが、有効なのは最後のリクエストだけですから、画面遷移のみが行われることになります。
 このとき、遷移先の画面で表示するべき内容が、最初のリクエストで行われている更新よりも先に参照されれば、更新されていない内容が表示されます。


 んで、おそらく、このような状態を、デバッグ環境で作ることは難しいです。デバッグ環境では、すべてのリクエストは、リニアに処理されるからです・・・と、どこかに書いてあったように記憶しているが、探せなかった。

〆 written by Jitta@わんくま同盟 on 2006/02/22
1

スキルアップ/キャリアアップ(JOB@IT)