国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在 ASP.NET 中使用計時器(Timer)

2024-07-10 13:06:58
字體:
來源:轉載
供稿:網友

商業源碼熱門下載www.html.org.cn

我在實驗中發現在 asp.net 中可以使用計時器(timer)完成一些定時動作。這一點可能會對我們的一些 web 程序有益。

下面首先介紹我測試使用的一個例子:

首先在 global.asax 中的 application_onstart 事件過程中定義計時器,代碼如下:
[vb.net] global.asax
<%@ import namespace="system.timers" %>
<script runat="server">

   sub application_onstart(sender as object, e as eventargs)
       ' 創建一個計時器,單位:毫秒
       dim atimer as new system.timers.timer(10000)

       ' 將 fresher 指定為計時器的 elapsed 事件處理程序
       addhandler atimer.elapsed, addressof fresher

       ' autoreset 屬性為 true 時,每隔指定時間循環一次;
       ' 如果為 false,則只執行一次。
       atimer.autoreset = true
       atimer.enabled = true
        
       ' 先給 application("timestamp") 指定一個初值
       application.lock()
       application("timestamp") = datetime.now.tostring()
       application.unlock()
   end sub

   sub fresher(sender as object, e as elapsedeventargs)
       application.lock()
       application("timestamp") = datetime.now.tostring()
       application.unlock()
   end sub

</script>
 


然后我們簡單寫一個 test.aspx 來查看 application("timestamp") 的值。代碼如下:
[vb.net] test.aspx
<%
    response.write(application("timestamp"))
%>
 

分析:

根據 global.asax 中的代碼,我們設定了一個計時器,每隔 10 秒鐘執行一次 fresher() 過程;在 fresher() 過程中我們事實上只是重新寫入了一個 application("timestamp") 新值。換句話說,application("timestamp") 的值是應該每隔 10 秒鐘更新一次的。

是不是這樣的呢?通過 test.aspx 的反復刷新觀察 application("timestamp") 的值,的確發現這個值在每隔 10 秒地變化一次,而其他時候則保持不變。與我們的預期是一致的。

意義:

通過引入計時器我們可以在 asp.net 的全局性程序(application)中靈活的使用計時器完成一些定時操作,比如:在社區/論壇系統中,每隔 5 分鐘更新一次在線用戶列表,每隔 1 個小時更新一次用戶經驗值,或者每隔一天備份一次關鍵數據等等。這個思路應該是很誘人的。

探討:

q: 是否在 asp.net 代碼的任何地方都可以使用計時器呢?
a: 我沒有測試過在普通 *.aspx 中插入計時器的情形。但從 b/s 程序的特點來看,即使在 *.aspx 中插入計時器可行,也不是一種好的選擇。因為對于 b/s 程序來說,服務器接到客戶端的請求本身就是一個事件,在這個事件處理過程中,服務器必須迅速的作出回應,為客戶端產生相應的 html 代碼,然后結束這一過程。如果在 *.aspx 使用計時器(如果允許的話),則第一沒有太大必要,第二很容易使系統因為插入的計時器過多(因為每一次 *.aspx 的執行都有可能插入一個新的計時器)而使系統癱瘓。

因此,我建議只在 global.asax 的 application_onstart 中使用比較安全一些。歡迎對此感興趣的朋友對此發表見解。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福安市| 井陉县| 永年县| 东光县| 望江县| 兰溪市| 沙坪坝区| 辽宁省| 孝感市| 定南县| 宜兰市| 威海市| 安多县| 东乌| 霍城县| 夏邑县| 鹿邑县| 汤原县| 汝城县| 双牌县| 巴林左旗| 青田县| 山阴县| 房产| 长沙市| 金门县| 肇源县| 桦川县| 建湖县| 江西省| 聊城市| 奉新县| 湘潭县| 拜泉县| 山西省| 武威市| 岳普湖县| 化州市| 陕西省| 军事| 宜兰县|