委派 說難不難,了解之後 使用就跟喝開水一樣,裝水 之後就喝水了
整個的動做可以分成兩個大部分,每個部分可以再分成兩個
大的可以分成 電台 與 收音機 兩者發送與接收在同一頻道的時候 收音機就可以撥放出電台傳送的音樂
電台可以細分為 發設機 與 發設天線
收音機可以細分為 機身 與 接收天線
而兩者間發送與接收的頻率 就是委派的動作
讓我們來做個簡單的程式,用委派做一個電子時鐘的
建立一個新的Form表單專案
在上面建立一個 Label,不用改名字
然後再建立一個Class 取名為 TimerClock
在裡面輸入已下程式碼
Dim WithEvents clock As New System.Windows.Forms.Timer '建立一個 Timer的
Sub New()
clock.Interval = 1000
clock.Start()
End Sub
Public Event ReportTime As EventHandler '建立委派的發射天線
Private Sub clock_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles clock.Tick
doReportTime(Now) '將現在的的時間當作要送出的訊息
End Sub
Private Sub doReportTime(ByVal time As DateTime)
RaiseEvent ReportTime(time, EventArgs.Empty) '指定頻道由發射天線送出訊號
End Sub
如此 當 New 好一個新的 TimerClock 就會一直發送訊號
所以 現在就需要一台收音機,來接收電台發送的訊號
Public Class Form1
Dim clock As New TimerClock '建立一個新的 TimerClock
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler clock.ReportTime, AddressOf getTime '建立接收的天線
End Sub
Private Sub getTime(ByVal sander As DateTime, ByVal e As System.EventArgs)
Label1.Text = sander.ToString("yyyy/MM/dd HH:mm:ss") '將接收的資料播放出來
End Sub
End Class
基本的一個委派的動作 就完成,但這個委派還無法解決跨執行緒的問題,待後再介紹