Actuellement, j'utilise la bibliothèque Acrobat Interop (v1.1) d'Adobe en un seul thread pour modifier plusieurs documents PDF par lot sur plusieurs volumes. C'est un goulot d'étranglement majeur dans mon programme, et, au fur et à mesure que le projet a mûri, je suis devenu tenté de paralléliser certaines parties de ce programme.Création par programme de plusieurs instances d'Acrobat
Cependant, il semble qu'avant de pouvoir continuer, j'ai besoin de créer plusieurs processus Acrobat afin de ne pas avoir plusieurs threads se verrouillant sur l'unique instance de l'application. Je sais que l'on peut ajuster le comportement unique de processus d'Adobe en utilisant le/n interrupteur dans la coque, mais étant donné la façon dont il est instancié au sein .NET:
Type type = Type.GetFromProgID("AcroExch.PDDoc");
CAcroPDDoc app = (CAcroPDDoc)Activator.CreateInstance(type);
Je ne peux pas vraiment trouver un moyen de forcer en plusieurs instances. J'ai essayé chaque hack de registre sous le soleil, mais ceux-ci ne semblent affecter que la façon dont Acrobat se lance depuis le shell. Autant que j'ai pu le dire, il n'y a pas non plus de paramètres pour le constructeur COM. J'espérais que quelqu'un pourrait me diriger dans la bonne direction. Merci!
Il est probablement serveur COM hors processus, vérifiez si vous voyez un démarrage .exe lorsque vous créez l'objet app. Non, vous ne pouvez pas remplacer son comportement dans l'application cliente. –