Да, это возможно. Поведение exe-файла ActiveX по умолчанию состоит в том, чтобы каждое приложение, которое создает ссылку на ваш exe-файл, совместно использовало один его экземпляр в одном процессе. Если вы хотите изменить это так, чтобы каждая ссылка создавала свой отдельный exe-файл в отдельном процессе, измените свойство Instancing
с MultiUse
на SingleUse
.
Вы не можете сделать это программно во время выполнения; Вы должны сделать это в IDE. В окне Project щелкните класс, и вы увидите свойство Instancing
в окне Properties.
Еще одна вещь, с которой вы можете поэкспериментировать в качестве возможной альтернативы, - это модель потоков. По умолчанию снова используется один процесс, обрабатывающий все ссылки (MultiUse), но также и один поток, обрабатывающий все ссылки. Чтобы изменить это, вы можете зайти в свойства проекта (нижний пункт меню «Проект») и посмотреть на область «Модель потоков» в правом нижнем углу диалогового окна.
По умолчанию используется пул потоков с одним потоком. Если вы измените это на «поток на объект», вы будете создавать новый поток каждый раз, когда создаете ссылку на ваш ActiveX Exe. Вы также можете изменить номер пула потоков, чтобы добавить к нему больше потоков. Если вы сделаете это, потоки будут назначены на основе циклического перебора: если у вас есть, скажем, пять потоков в вашем пуле и шесть экземпляров, два из них (VB не скажет вам, какие из них, так что будьте осторожны) поделятся первым нить.
Итак, если вам нужно несколько экземпляров вашего EXE-файла, измените свойство instancing
на SingleUse
. Но если вы хотите повысить производительность и время выполнения, вы можете обнаружить, что несколько потоков в одном процессе тоже нужно исследовать.