遇到通过反射创建对象然后在多个线程上运行它们的问题。
我似乎无法弄明白我需要什么:
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没有这样的方法。我是否需要使用界面做某事?
答案 0 :(得分:1)
首先,我想说我从未在VB中编写代码,所以我在这里可能完全错了,但无论如何我都会尝试。
似乎您将创建的实例保存为Object而不是正确的类型。 对象不包含名为Process的方法,因此错误。
尝试将对象转换为正确的类型。
答案 1 :(得分:0)
我讨厌当人们回答他们自己的问题时,但在等待答案时,我意识到我可以将对象作为基础对象进行投射,并从那里设置反射。那现在正在运作。