Vb.net 如何使Activator.CreateInstance线程化

Vb.net 如何使Activator.CreateInstance线程化,vb.net,reflection,service,Vb.net,Reflection,Service,我有一些在多线程类中运行的代码。 基本上,我创建了许多包含此类实例的线程 在这个类中,我使用反射为vb6或.net dll创建一个对象,然后调用该对象中的一个方法。每次调用的对象都可能不同 但由于某些原因,即使在我访问Activator.CreateInstance时有多个线程,它也不再是多线程的。为什么呢?我怎么修理它 我想捕获返回的错误并将其放入日志中 If UCase(pRow("TypeVB6").ToString()) = "TRUE" Then

我有一些在多线程类中运行的代码。
基本上,我创建了许多包含此类实例的线程

在这个类中,我使用反射为vb6或.net dll创建一个对象,然后调用该对象中的一个方法。每次调用的对象都可能不同

但由于某些原因,即使在我访问Activator.CreateInstance时有多个线程,它也不再是多线程的。为什么呢?我怎么修理它

我想捕获返回的错误并将其放入日志中

            If UCase(pRow("TypeVB6").ToString()) = "TRUE" Then
                classType = Type.GetTypeFromProgID(ClasstoInstantiate, True)
            Else
                classType = Type.GetType(ClasstoInstantiate, True)
            End If

            Dim o As Object = Activator.CreateInstance(classType)
            cError = classType.InvokeMember(MethodName, BindingFlags.InvokeMethod Or BindingFlags.Instance Or BindingFlags.Public, Nothing, o, New Object() {FilePath, VirtDir})

解决方案的几个想法:

1) 验证您的服务的主入口点是否使用


2) 包装Activator.CreateInstance调用(可能还有以下InvokeMember方法)在a.

中,我将尝试这些并返回给您Synclock没有更改任何内容您正在接收的确切异常是什么?我没有收到异常,基本上它不会通过Activator.CreateINstance的代码行,直到其他线程完成。所以有两个不同的线程,它们一直是分开的,直到那行代码,然后出于某种原因,一个线程似乎在等待另一个线程。在我看来,你试图创建的对象是单线程的。另一种可能性是,该对象在启动代码中包含类似synclock或mutex的内容,以防止多个实例同时启动。