求教VB.NET的并发访问问题
当前的场景是这样的:
程序Monitor.exe(VB.NET 2010开发),程序启动时,从一个ini文件读取几个不定的IP地址,例如
[DUT1]
server_name=A1
ip=192.168.0.1
[DUT2]
server_name=A2
ip=192.168.0.2
[DUT3]
server_name=A3
ip=192.168.0.3
程序后台启动3个线程,每个线程telnet到每个ip的设备上,读取一些数据反馈回来存储到数据库中。
问题是这样的,如何使用循环创建这数量不定的线程(DUT的数量取决于ini文件配置),每个线程如何绑定telnet到不同的DUT上。
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim ini.dut_number As Integer = readini() '从ini可以获取数量
For j = 1 To ini.dut_number
Dim t1 As System.Threading.Thread = New system.Threading.Thread(AddressOf aaa)
t1.Start()
Next j
End Sub
Private Sub aaa()
XXX()
End Sub
还有一种思路是动态创建多个Timer,每个Timer的处理函数是telnet到不同的设备上,如何实现不同的Timer,使用不同的Timer处理函数,这些都是动态的。 VB.NET 线程?动态 线程 动态
[解决办法]
http://bbs.csdn.net/topics/320073764
vb.net也是一样的。可以封装为一个Class,然后你的aaa应该是这个类的对象实例上的方法,而不是当前Form1中的方法。
或者vb.net也支持匿名委托,类似于
For i As Integer = 1 To 100
Dim j As Integer = i
Dim x As Threading.Thread = New Threading.Thread(Sub()
Console.WriteLine(j)
End Sub)
x.Start()
Next