VB.Net用反射对象运行线程

时间:2009-09-25 18:09:09

标签: vb.net reflection multithreading

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

我似乎无法弄明白我需要什么:

            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”出错,因为Object没有这样的方法。我是否需要使用界面做某事?

2 个答案:

答案 0 :(得分:1)

首先,我想说我从未在VB中编写代码,所以我在这里可能完全错了,但无论如何我都会尝试。

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

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

答案 1 :(得分:0)

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