网站建设资讯

NEWS

网站建设资讯

vb.net线程之间通信,vbnet多线程简单

VB与VB.NET串口及以太网通迅

关于串口通讯的问题:

罗平网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。

建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。

关于以太网通讯:

在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。

但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。

或者,干脆不用TCP,用UDP解决也可以。

用vb.net实现网络通信

用 vb.net socket通信

Dim th As Threading.Thread

2 Dim tcpl As System.Net.Sockets.TcpListener

3

4 Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

5 th = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf MyListen))

6 th.Start()

7 End Sub

8

9 Public Sub SendMessage()Sub SendMessage(ByVal IP As String, ByVal SendMsg As String)

10 Try

11 If IP "" Then

12 Dim tcpc As New System.Net.Sockets.TcpClient(IP, 5656)

13 Dim tcpStream As Net.Sockets.NetworkStream = tcpc.GetStream

14 Dim reqStream As New IO.StreamWriter(tcpStream)

15 reqStream.Write(SendMsg)

16 reqStream.Flush()

17 tcpStream.Close()

18 tcpc.Close()

19 End If

20 Catch ex As Exception

21 MsgBox(ex.Message.ToString)

22 End Try

23 End Sub

24 Private Sub MyListen()Sub MyListen()

25 Try

26 Dim ipAddress As System.Net.IPAddress = System.Net.Dns.Resolve(System.Net.Dns.GetHostName).AddressList(0)

27 tcpl = New System.Net.Sockets.TcpListener(ipAddress, 5656)

28 tcpl.Start()

29 While True

30 Dim s As System.Net.Sockets.Socket = tcpl.AcceptSocket()

31 Dim MyBuffer(1024) As Byte

32 Dim i As Integer

33 i = s.Receive(MyBuffer)

34 If i 0 Then

35 Dim lstrRec As String

36 Dim j As Integer

37 For j = 0 To i - 1

38 TextBox1.Text += Chr(MyBuffer(j)) ","

39 Next

40 End If

41 End While

42 Catch ex As Exception

43 MsgBox(ex.Message.ToString)

44 End Try

45 End Sub

46

47 Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

48 SendMessage("192.168.0.61", TextBox2.Text)

49 End Sub

谁能分享一下vb.net多线程的简单例子,证明线程之间互不干扰,加上注释最好。

Imports System

Imports System.Threading

Public Class Form1

Dim TestThread1, TestThread2 As Thread

Public Sub TestMethod1()

Dim i As Integer

i = 0

While (i  1000)

Label1.Text = i

i += 1

End While

End Sub

Public Sub TestMethod2()

Dim i As Integer

i = 0

While (i  1000)

Label2.Text = i

i += 1

End While

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Control.CheckForIllegalCrossThreadCalls = False

TestThread1 = New Thread(New ThreadStart(AddressOf TestMethod1))

TestThread1.Start()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Control.CheckForIllegalCrossThreadCalls = False

TestThread2 = New Thread(New ThreadStart(AddressOf TestMethod2))

TestThread2.Start()

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Control.CheckForIllegalCrossThreadCalls = False

TestThread1 = New Thread(New ThreadStart(AddressOf TestMethod1))

TestThread2 = New Thread(New ThreadStart(AddressOf TestMethod2))

TestThread1.Start()

TestThread2.Start()

End Sub

End Class

VB.NET编写 一个 多线程 串口通讯 程序

串口通讯不需要多线程吧

如果你执意要学

分开学 这个是两个不同的概念

串口通讯和多线程分开学


文章标题:vb.net线程之间通信,vbnet多线程简单
浏览地址:http://cdweb.net/article/dsgeohj.html