我制作了一个 Windows 服务使用的 VB6 EXE ActiveX,我想知道是否有可能在任务管理器中同时拥有这个 exe 的多个进程?
例如,我们使用 AltovaXML_COM.exe 执行 XSL 转换,每次创建实例时都会创建一个新进程,因此在任务管理器中我们有多个独立进程。
VB6 exe ActiveX有可能吗?
我们的 exe Active X 创建了 svg 文件,我们希望同时生成多个这些文件。
谢谢你的帮助
我制作了一个 Windows 服务使用的 VB6 EXE ActiveX,我想知道是否有可能在任务管理器中同时拥有这个 exe 的多个进程?
例如,我们使用 AltovaXML_COM.exe 执行 XSL 转换,每次创建实例时都会创建一个新进程,因此在任务管理器中我们有多个独立进程。
VB6 exe ActiveX有可能吗?
我们的 exe Active X 创建了 svg 文件,我们希望同时生成多个这些文件。
谢谢你的帮助
对的,这是可能的。ActiveX exe 的默认行为是让创建对您的 exe 的引用的每个应用程序在单个进程中共享它的单个实例。如果要更改此设置,以便每个引用在单独的进程中创建自己的单独 exe,则将Instancing
属性从更改MultiUse
为SingleUse
。
您不能在运行时以编程方式执行此操作;您必须在 IDE 中执行此操作。在“项目”窗口中,单击该类,您将Instancing
在“属性”窗口中看到该属性。
您可能想要尝试的另一件事是线程模型。同样,默认是一个处理所有引用的进程(MultiUse),但也是一个处理所有引用的单个线程。要更改此设置,您可以进入项目属性(项目菜单的底部选择)并查看对话框右下方的线程模型区域。
默认是一个线程池,只有一个线程。如果您将其更改为“每个对象的线程”,您将在每次创建对 ActiveX Exe 的引用时创建一个新线程。您还可以更改线程池编号以向其中添加更多线程。如果你这样做,线程是在循环的基础上分配的:如果你的池中有五个线程和六个实例,其中两个实例(VB 不会告诉你哪个,所以要小心)将共享第一个线。
因此,如果您需要 EXE 的多个实例,请将instancing
属性更改为SingleUse
. 但是,如果您希望提高性能和执行时间,您可能会发现一个进程中的多个线程也是需要研究的。
AX EXE 的每个实例都将在任务管理器中显示为单独的条目(进程)。一个程序可以多次实例化一个 AX EXE,或者多个程序可以多次实例化它。这不是 AX EXE 本身所做的事情,而是使用 AX EXE 的其他程序所做的事情。