【发布时间】:2010-11-12 12:46:40
【问题描述】:
我目前正在以单线程方式使用 Adobe 的 Acrobat Interop 库 (v1.1) 来批量编辑多个卷中的多个 PDF 文档。这是我的程序中的一个主要瓶颈,随着项目的成熟,我很想并行化其中的一部分。
但是,在我可以继续之前,我似乎需要创建多个 Acrobat 进程,以免多个线程锁定在应用程序的单个实例上。我知道可以通过使用 shell 中的 /n 开关来调整 Adobe 的单进程行为,但考虑到它在 .NET 中的实例化方式:
Type type = Type.GetFromProgID("AcroExch.PDDoc");
CAcroPDDoc app = (CAcroPDDoc)Activator.CreateInstance(type);
我真的找不到一种方法来强制它进入多个实例。我已经在阳光下尝试了所有注册表黑客,但这些似乎只会影响 Acrobat 从 shell 中启动的方式。据我所知,COM 构造函数也没有参数。
我希望有人能指出我正确的方向。谢谢!
【问题讨论】:
-
这可能是一个进程外 COM 服务器,请检查您在创建应用程序对象时是否看到 .exe 启动。不,您不能在客户端应用程序中覆盖其行为。
标签: c# .net com interop acrobat