如何在任务管理器中有多个VB6 Exe ActiveX实例

时间:2018-04-27 14:11:42

标签: vb6 activex-exe

我制作了一个由Windows服务使用的VB6 EXE ActiveX,我想知道是否有可能在任务管理器中同时拥有这个exe的几个进程?

例如,我们使用AltovaXML_COM.exe来执行XSL转换,每次创建实例时都会创建一个新进程,因此在任务管理器中我们有几个独立的进程。

是否有可能使用VB6 exe ActiveX?

我们的exe Active X创建了svg文件,我们希望同时执行这几个文件的生成。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

AX EXE的每个实例都将在任务管理器中显示为单独的条目(进程)。一个程序可以多次实例化AX EXE,或者多个程序可以多次实例化它。这不是AX EXE本身所做的事情,而是使用AX EXE的其他程序。

答案 1 :(得分:1)

是的,有可能。 ActiveX exe的默认行为是让每个创建对exe的引用的应用程序在单个进程中共享它的单个实例。如果要更改此设置,以便每个引用在单独的进程中创建自己的单独exe,请将Instancing属性从MultiUse更改为SingleUse

您不能在运行时以编程方式执行此操作;你必须在IDE中完成它。在“项目”窗口中,单击该类,您将在“属性”窗口中看到Instancing属性。

您可能想要尝试的另一件事是线程模型。同样,默认值是处理所有引用(MultiUse)的一个进程,但也是处理所有引用的单个线程。要更改此设置,可以进入“项目”属性(“项目”菜单上的底部选择),然后查看对话框右下角的“线程模型”区域。

默认值是一个包含一个线程的线程池。如果将其更改为“每个对象的线程数”,则每次创建对ActiveX Exe的引用时都将创建一个新线程。您还可以更改线程池编号以向其添加更多线程。如果你这样做,线程是基于循环分配的:如果你的池中有五个线程和六个实例,那么两个实例(VB不会告诉你哪个,所以要注意)将共享第一个线程。

因此,如果您需要EXE的多个实例,请将instancing属性更改为SingleUse。但是,如果您希望增强性能和执行时间,您可能会发现一个进程中的多个线程也需要调查。