gpt4 book ai didi

vb.net - 如何通过将变量名转换为对象来动态启动多个线程

转载 作者:行者123 更新时间:2023-12-04 04:43:38 25 4
gpt4 key购买 nike

不知道这会有多难,或者是否涉及类型转换,但这是我想要的(请使用 vb.net 代码)

我想要的只是一个 Loop这将创造不同的 Threads用不同的名字。

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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com