代码之家  ›  专栏  ›  技术社区  ›  RiddlerDev

用反射对象运行线程的vb.net

  •  0
  • RiddlerDev  · 技术社区  · 16 年前

    遇到通过反射创建对象的问题,然后在多个线程上运行它们。

    我只是不明白我在这里需要什么:

                For Each WorkerNode As XmlNode In oRunSettings.GetWorkerValues
                    Dim sWorkerName = WorkerNode.Attributes(SETTING_NAME_ID).Value
                    Dim oWorkerType As Type = Type.GetType(String.Format("Worker.{0}", sWorkerName))
                    Dim oWorker As Object = Activator.CreateInstance(oWorkerType)
                    Dim tWorker As Thread = New Thread(AddressOf oWorker.Process)
                    tWorker.Start()
                Next
    

    它在“AddressOf”处导致错误,因为对象没有调用它的方法。我需要用接口做些什么吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Moshe Levi    16 年前

    首先,我想说的是,我从来没有用VB编写过代码,所以我可能在这里完全错了,但我还是会尝试。

    您似乎将创建的实例保存为对象,而不是正确的类型。 对象不包含名为process的方法,因此出现错误。

    尝试将对象强制转换为正确的类型。

        2
  •  0
  •   RiddlerDev    16 年前

    我讨厌人们回答他们自己的问题,但当我等待答案时,我意识到我可以将对象投射为其基本对象,并从那里设置反射。现在可以了。