我正在运行一个多线程的Windows服务,需要调用一个VB6 dll。没有关于这个VB6 dll的文档,并且这个遗留系统支持非常关键的业务流程。
第一次(第一个线程),这个dll表现良好。当其他线程需要访问时,它开始提供错误的结果。
我读到有人说:
“如果您使用的是VB6,请注意一件事情。如果您正在运行多线程服务,则线程模型将必须更改以支持公寓。VB仅支持多个单线程公寓,但.NET通常运行完全自由线程。调用VB6 DLL的线程需要与DLL兼容。”
团队中的另一个人给了我将此ddl放入一个分离的应用程序域的想法。但我不确定。
我们如何处理从多线程C# Windows服务应用程序调用的VB6 dll?
第一次(第一个线程),这个dll表现良好。当其他线程需要访问时,它开始提供错误的结果。
我读到有人说:
“如果您使用的是VB6,请注意一件事情。如果您正在运行多线程服务,则线程模型将必须更改以支持公寓。VB仅支持多个单线程公寓,但.NET通常运行完全自由线程。调用VB6 DLL的线程需要与DLL兼容。”
团队中的另一个人给了我将此ddl放入一个分离的应用程序域的想法。但我不确定。
我们如何处理从多线程C# Windows服务应用程序调用的VB6 dll?