事件模型 溫度預警問題

2021-09-02 07:46:57 字數 1931 閱讀 7417

基於事件驅動的程式設計是目前主流的程式設計方法,它是windows應用程式設計和web應用程式設計的基礎。但長期以來,基於事件驅動模型都被廣大初學者視為難以理解的內容。

其實,事件驅動的程式設計並不難理解,其過程與防災救災是相通的。

完整的時間處理系統必須包含以下三大組成要素:

1、事件源:指能出發事件的物件,有時又稱為事件的傳送者或事件的發布者。

2、偵聽器:指能接受到事件訊息的物件。windows提供了基礎的事件偵聽服務。

3、時間處理程式:在事件發生時能對事件進行有效處理,又稱事件方法或事件函式。包含事件處理程式的物件稱為事件的接受者,有時又稱事件的訂閱者。

其實現步驟包括5個步驟:

1、定義事件相關資訊類

2、在事件發布類(事件源)中宣告事件,並宣告乙個負責出發事件的方法

3、在事件接受者類中宣告事件發生時呼叫的方法

4、在事件接收者類中訂閱事件

5、在事件接收者類中觸發事件

本篇文章介紹乙個用事件模型解決乙個簡單的問題:溫度預警問題

模擬溫度,每秒變化一次,隨著溫度的自動變化顯示預警資訊。

執行結果:

//第三步,宣告事件產生時呼叫的方法

public void tw_onwarning(object sender, temperatureeventargs e)

else if (e.temperature < 37)

else if (e.temperature < 40)

else

}private void bntdouble_click(object sender, eventargs e)

//每隔一秒激發一次該方法,用來模擬溫度值的改變

private void timer1_tick(object sender, eventargs e)

}//第一步,定義事件相關資訊類

public class temperatureeventargs : eventargs

//定義唯讀屬性

public int temperature}}

//第二步,定義事件警報器

public class temperaturewarning}}

}其中,random類是偽隨機數生成類,該類的next(minvalue, maxvalue)方法可以產生乙個大於等於minvalue並小於maxvalue的隨機整數。

timer控制項是乙個計時器控制項,可以週期性產生乙個tick事件,可以用該控制項週期性的執行某些操作。當timer控制項的enable屬性設定為true時,可以啟用該控制項:設定為false時,關閉計時,interval屬性是timer控制項的激發間隔,單位是毫秒。另外,乙個事件方法只有訂閱後才能生效,為此需要雙擊timer1控制項,在該控制項方法中寫入**,以觸發事件並模擬溫度的變化。

流失預警模型 實時查詢

本篇主要做的是乙個流失預警模型實時查詢的乙個測試,需求描述 使用者名單請求判斷是否流失,秒級內返回判斷結果。操作場景如下 流失預警模型,使用者是否在未來一段時間內流失 牽涉到流失定義,使用者活躍度定義,使用者行為時間定義等 建立,用到了使用者最近行為特徵 行為趨勢特徵等,最後 是否流失 1流失,0留...

標準事件模型和IE事件模型

在瀏覽器解析事件的時候,有兩種觸發方式,一種叫做bubbling 冒泡 另外一種叫做capturing 捕獲 這裡不做過多解釋 這裡分析三種繫結事件模式 1 traditional module 傳統方式的事件模型即直接在dom元素上繫結事件處理器,例如 window.onload function...

事件(二) Jquery事件模型

與w3c標準事件api十分相似,除了名稱上的不同以外,唯一差別就是去掉了usecapture引數,並且去掉了事件名稱中的on字首。示例 如下 document bind ready function div bind mouseout function 與傳統的時間模型不同,jquery的事件名稱沒...