我做了一个windows服务使用的VB6 EXE ActiveX,我想知道有没有可能有几个进程的这个exe同时在任务管理器?
例如,我们使用AltovaXML_COM.exe执行XSL转换,每次我创建一个实例时都会创建一个新进程,因此在任务管理器中我们有几个独立的进程。
是否可以使用VB6 exe ActiveX?
我们的exe Active X创建svg文件,我们希望同时执行这些文件的几个生成。
谢谢你的帮忙
发布于 2018-05-02 13:37:48
是的,这是可能的。ActiveX可执行文件的默认行为是让创建对可执行文件的引用的每个应用程序在单个进程中共享其单个实例。如果要更改此设置,以便每个引用在单独的进程中创建自己的单独exe,请将Instancing属性从MultiUse更改为SingleUse。
您不能在运行时以编程方式执行此操作;必须在IDE中执行此操作。在“项目”窗口中,单击该类,您将在“属性”窗口中看到Instancing属性。
作为可能的替代方案,您可能希望试验的另一件事是线程模型。默认情况下,同样是一个处理所有引用的进程(MultiUse),也是一个处理所有引用的线程。要更改这一点,您可以进入Project属性( Project菜单上的底部选择),并查看对话框右下角的Threading Model区域。
缺省值是具有一个线程的线程池。如果将其更改为“每个对象都有线程”,则在每次创建对ActiveX Exe的引用时都会创建一个新线程。您还可以更改线程池编号以向其中添加更多线程。如果这样做,线程将以循环方式分配:假设您的池中有五个线程和六个实例,其中两个实例(VB不会告诉您是哪个实例)将共享第一个线程。
因此,如果需要多个EXE实例,请将instancing属性更改为SingleUse。但是,如果您希望提高性能和执行时间,您可能会发现一个进程中的多个线程也是需要研究的问题。
发布于 2018-04-28 00:10:57
AX的每个实例都将在任务管理器中显示为一个单独的条目(进程)。一个程序可以多次实例化一个AX,或者多个程序可以多次实例化它。这不是AX自己做的事情,而是使用AX的其他程序做的事情。
https://stackoverflow.com/questions/50064260
复制相似问题