2009-07-09 9 views
0

私はASP.NETのページにタイマーを持っています。Timer.Tickイベントのローカル静的変数(タイマーの停止)

一定の時間が経過すると、タイマーを無効にします。

タイマーのティックイベントに静的変数を設定して、経過秒数を記録したいとします。

私の質問は、これは動作しますか?

ユーザXとYが両方ともページを表示している場合は、両方ともローカル静的変数が別にありますか?

一定の時間が経過した後、ASP.NETタイマーをシャットダウンする最良の方法は何ですか?

答えて

1

いいえ、動作しません。 VB.NetのStaticは、クラスレベルで隠し共有変数をスレッドセーフな方法で隠す構文的な砂糖です。共有クラスの変数は、のすべてのユーザーが一度にそのページののユーザーと共有しているので、これはまったくうまくいかないでしょう。

代わりに、datetimeフィールドをセッションに格納して確認してください。また、タイマー自体がクライアント上で実行されていることに注意してください(あなたがajaxタイマーコントロールを使用していると仮定して)。したがって、それを無効にする唯一の方法は、Tickイベントが発生したときなどのサーバーイベント中です。