2009-07-09 105 views
0

我在ASP.NET的頁面上有一個計時器。Timer.Tick事件中的本地靜態變量(停止計時器)

經過一段時間後,我想禁用定時器。

我想在定時器滴答事件中放置一個靜態變量,它將跟蹤已經過了多少秒。

我的問題是,這項工作?

如果用戶X和Y正在查看該頁面,它們是否都有單獨的本地靜態變量?

在一定的時間過後,關閉ASP.NET計時器的最佳方法是什麼?

回答

1

不,它不會工作。 VB.Net中的Static是一種語法糖,它以一種線程安全的方式在類級別隱藏了一個隱藏的共享變量。由於一個共享的類變量會被同時共享給所有的用戶,所以這根本無法滿足您的希望。

相反,將您的日期時間字段存儲在會話中,並檢查它。另外請記住,計時器本身正在客戶端上運行(假設您正在使用ajax計時器控件)。因此,禁用它的唯一方法是在服務器事件期間,例如您的Tick事件觸發時。