1
我的意圖與下面的代碼是開始尋找(異步)爲UDP數據報,當我的窗體打開。當收到數據報時,我想要做的就是調用在主線程上運行的過程(傳遞收到的消息),然後重新開始查找另一個數據報。假設代碼是正確的,直到數據報出現,我如何執行接下來的兩個步驟?我對跨線程操作,代表等感到非常困惑。謝謝。另外,我想留在.NET 4.0中。如何在Windows窗體應用程序(VB.NET)中使用UdpClient.BeginReceive
Const RcvPort As Integer = 33900
Public RRWEndPoint As IPEndPoint = New IPEndPoint(myIPaddr, RcvPort)
Public SiteEndPoint As IPEndPoint = New IPEndPoint(IPAddress.Any, RcvPort)
Public dgClient As UdpClient = New UdpClient(RRWEndPoint)
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
dgClient.BeginReceive(AddressOf UDPRecv, Nothing)
End Sub
Public Sub UDPRecv(ar As IAsyncResult)
Dim recvBytes As Byte() = dgClient.EndReceive(ar, SiteEndPoint)
Dim recvMsg As String = Encoding.UTF8.GetString(recvBytes)
dgClient.BeginReceive(AddressOf UDPRecv, Nothing)
End Sub
謝謝你,漢斯。我把下面的地方放在''等等......:Debug.WriteLine(recvMsg)和me.TextBox1.text = recvMsg。調試行顯示消息,但文本框不更新。 – John
我的錯誤。它效果很好。這很簡單。再次感謝。 – John