顯示具有 myCodes - dotNet 標籤的文章。 顯示所有文章
顯示具有 myCodes - dotNet 標籤的文章。 顯示所有文章

2010年12月13日 星期一

"A物件的Event"內 引用 "B物件方法" 之技巧

在VB6時代,在簡單不過的事情,跑到.NET就變得麻煩,主要是programmer必須更注意執行緒之間相互引用介面的問題,反正就是A執行許要引用B執行續的服務,要透過一些技巧,Delegate是其中之一

留個記錄:
物件_reader的 event - TagRead 不能直接引用lstl.Items.Add方法,須透過Delegate技巧





Delegate Sub ShowTagCode(ByVal msg As String)

Private Sub ShowTagCodeOnLst(ByVal msg As String)
lst.Items.Add(msg)
End Sub

Private Sub _reader_TagRead(ByVal tags() As GAORFID.Tag) Handles _reader.TagRead
Dim i As Integer

For i = 0 To tags.Length - 1
If lst.InvokeRequired Then
Dim d As New ShowTagCode(AddressOf ShowTagCodeOnLst)
Try
Me.Invoke(d, New Object() {tags(i).ID})
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
lst.Items.Add(tags(i).ID)
End If
Next
End Sub

2010年10月19日 星期二

ThreadPool 多工好幫手

留個記錄:

Imports System.Threading

Dim callBack As New WaitCallback(AddressOf ProcessDeviceDataThread)

ThreadPool.QueueUserWorkItem(callBack)

Private Sub ProcessDeviceDataThread(ByVal obj As Object)
While True
Threading.Thread.Sleep(10)
'do something or then exit
End While
End Sub