不确定这有多难,或者是否涉及转换,但这就是我想要的(请使用 vb.net 代码)
我想要的只是一个循环
,它将创建具有不同名称的不同线程
。
dim variableName="Thread"
for i as Integer = 0 to 5
"dim " & variableName & (i) & "as new Threading.Thread"
next
然后启动它们
for i as integer = 0 to 5
variableName & i.tostring" = New Thread(New ParameterizedThreadStart(AddressOf SubOrFunction))"
variableName & i.tostring".Start(s)
- 如何实现这一目标
- 这实际上叫什么(术语)
提前致谢。
最佳答案
通常,当您想要动态地为对象分配名称时,最好使用字典。在字典中,您将使用动态分配的名称的键,并将值用作分配该名称的对象。例如:
Dim d As New Dictionary(Of String, MyClass)()
'Add objects to dictionary
d("dynamic name 1") = New MyClass()
d("dynamic name 2") = New MyClass()
'Get object from dictionary by name
Dim myObject As MyClass = d("dynamic name 1")
同样的方法也适用于线程,例如:
Dim threads As New Dictionary(Of String, Thread)()
Dim variableName = "Thread"
For i As Integer = 0 To 5
threads(variableName & "(" & i.ToString() & ")") = New Thread()
Next
但是,如果您所做的只是为它们分配数字索引,而不是字符串名称,则可以只使用列表,如下所示:
Dim threads As New List(Of Thread)()
For i As Integer = 0 To 5
threads.Add(New Thread())
Next
然后你可以通过索引从列表中获取线程,如下所示:
Dim t As Thread = threads(1)
或者,如果您有一定数量的线程,则可以轻松使用数组:
Dim threads(4) As Thread
For i As Integer = 0 To 5
threads(i) = New Thread()
Next
关于vb.net - 如何通过将变量名称转换为对象来动态启动多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533135/