Как иметь несколько экземпляров VB6 Exe ActiveX в диспетчере задач - PullRequest
0 голосов
/ 27 апреля 2018

Я сделал VB6 EXE ActiveX, который используется службой Windows, и я хотел бы знать, есть ли возможность иметь несколько процессов этого exe одновременно в диспетчере задач?

Например, мы используем AltovaXML_COM.exe для выполнения преобразования XSL, и каждый раз, когда я создаю экземпляр, создается новый процесс, поэтому в диспетчере задач у нас есть несколько независимых процессов.

Возможно ли с VB6 exe ActiveX?

Наш exe Active X создает SVG-файлы, и мы хотим выполнить генерацию нескольких файлов одновременно.

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Да, это возможно. Поведение exe-файла ActiveX по умолчанию состоит в том, чтобы каждое приложение, которое создает ссылку на ваш exe-файл, совместно использовало один его экземпляр в одном процессе. Если вы хотите изменить это так, чтобы каждая ссылка создавала свой отдельный exe-файл в отдельном процессе, измените свойство Instancing с MultiUse на SingleUse.

Вы не можете сделать это программно во время выполнения; Вы должны сделать это в IDE. В окне Project щелкните класс, и вы увидите свойство Instancing в окне Properties.

Еще одна вещь, с которой вы можете поэкспериментировать в качестве возможной альтернативы, - это модель потоков. По умолчанию снова используется один процесс, обрабатывающий все ссылки (MultiUse), но также и один поток, обрабатывающий все ссылки. Чтобы изменить это, вы можете зайти в свойства проекта (нижний пункт меню «Проект») и посмотреть на область «Модель потоков» в правом нижнем углу диалогового окна.

По умолчанию используется пул потоков с одним потоком. Если вы измените это на «поток на объект», вы будете создавать новый поток каждый раз, когда создаете ссылку на ваш ActiveX Exe. Вы также можете изменить номер пула потоков, чтобы добавить к нему больше потоков. Если вы сделаете это, потоки будут назначены на основе циклического перебора: если у вас есть, скажем, пять потоков в вашем пуле и шесть экземпляров, два из них (VB не скажет вам, какие из них, так что будьте осторожны) поделятся первым нить.

Итак, если вам нужно несколько экземпляров вашего EXE-файла, измените свойство instancing на SingleUse. Но если вы хотите повысить производительность и время выполнения, вы можете обнаружить, что несколько потоков в одном процессе тоже нужно исследовать.

0 голосов
/ 27 апреля 2018

Каждый экземпляр AX EXE будет отображаться как отдельная запись (процесс) в диспетчере задач. Одна программа может создавать экземпляр AX EXE несколько раз, или несколько программ могут создавать его один или несколько раз. Это не то, что AX EXE делает сам по себе, это то, что делают другие программы, использующие AX EXE.

...