委派  說難不難,了解之後  使用就跟喝開水一樣,裝水 之後就喝水了

整個的動做可以分成兩個大部分,每個部分可以再分成兩個

大的可以分成  電台  與 收音機  兩者發送與接收在同一頻道的時候  收音機就可以撥放出電台傳送的音樂

電台可以細分為  發設機 與 發設天線

收音機可以細分為  機身 與 接收天線

而兩者間發送與接收的頻率  就是委派的動作

 

讓我們來做個簡單的程式,用委派做一個電子時鐘的

建立一個新的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

 

基本的一個委派的動作 就完成,但這個委派還無法解決跨執行緒的問題,待後再介紹

arrow
arrow
    文章標籤
    委派
    全站熱搜

    Rh 發表在 痞客邦 留言(1) 人氣()