Chinese Simplified (简体中文)

加载 Engine 对象的不同方式

有三种在 ABBYY FineReader Engine 12 中加载 Engine 对象的方式。每种加载方法有自己的特点,影响对象在不同情形下的使用。前两种方法适用于不同时处理多个请求的交互式应用程序中。第三种方法最适用于服务器解决方案。

手动加载 FREngine.dll 和处理"裸"接口

这是加载 Engine 对象的标准方法。要获取 Engine 对象参考,可调用 InitializeEngine 功能。

优势 限制
  • 产生最大性能。
  • 不需要注册 FREngine.dll。

C# 代码

通过 COM 将 Engine 对象加载到当前进程中

作为进程内服务器,Engine 被载入运行应用程序的同一进程中。Engine 对象使用 InprocLoader 对象进行加载,后者实现了 IEngineLoader 接口。

优势 限制
  • 所有 ABBYY FineReader Engine 对象都是绝对线程安全的,可以在不同线程中创建和使用。
  • 在 Мain STA 单元工作时的性能与使用裸接口时的相同。当从不同线程进行访问时,可能会产生封送处理开销,但是在大多数场景下开销可以忽略不计。
  • 在终端用户的计算机上安装最终应用程序时需要注册 FREngine.dll。

C# 代码

注:要在终端用户计算机上安装应用程序时注册 FREngine.dll,请使用以下命令行:regsvr32 /s /n /i:"<Inc 文件路径 >" "<FREngine.dll 的路径>"

通过 COM 将 Engine 对象加载入单独进程中

Engine 将作为一个进程外服务器载入单独进程中。Engine 对象通过 OutprocLoader 对象加载,后者实现了IEngineLoader 接口。

优势 限制
  • 所有 ABBYY FineReader Engine 对象都是绝对线程安全的。每个Engine 都在单独进程中运行,并互相平行。
  • 可以组织一个处理器池来充分利用计算机的 CPU 算力。
  • 存在少量封送处理开销。
  • 在终端用户的计算机上安装最终应用程序时需要注册 FREngine.dll。
  • 对于权限有限的帐户,必须授予必要的权限。
  • 无法以HBITMAP形式访问页面图像。
  • 无法与可视化组件一起使用,因为它们不能与多个进程一起使用。

C# 代码

这种 Engine 对象的加载方式大多在 EnginesPool 代码示例中使用,该方式为多线程应用程序提供了一个可重复使用的解决方案。

注:

  • 账户权限可以通过 DCOM Config 实用工具进行设置(在命令行中键入DCOMCNFG,或者选择 控制面板 > 管理工具 > 组件服务)。在控制台树中,找到 组件服务 > 计算机 > 我的计算机 > DCOM Config文件夹,右键单击 ABBYY FineReader Engine 12.5 Loader (Local Server),然后单击 属性。屏幕上将打开一个对话框。单击 安全 选项。在 启动权限 下,单击 自定义,然后单击 编辑,指定可以启动应用程序的账户。

    注意,在 64 位操作系统上,注册的 DCOM 应用程序可在32位 MMC 控制台中使用,该控制台可使用以下命令行运行:

    "mmc comexp.msc /32"
    
  • 要在终端用户计算机上安装应用程序时注册 FREngine.dll,请使用以下命令行:

    regsvr32 /s /n /i:"<Inc 文件夹路径 >" "<FREngine.dll 的路径>"
    
  • 我们建议您使用网络许可证来调试和运行服务器应用程序。

此外,您可以使用 IHostProcessControl 接口来管理主机进程的优先级并控制它是否处于活动状态。

对照表

下表总结了三种加载方法的特点:

特点 裸接口 进程中服务器 进程外服务器
不使用代理(无封送处理系统开销) 有限制
在多线程应用程序中工作 有限制
可平行运行进程(适合服务器解决方案)
不需要注册 FREngine.dll
非必须设置运行权限
对象可以使用 运算符进行创建。从脚本工作。
可以将页面图像作为 HBITMAP 进行访问
在单独进程中工作(防止出故障、回收)
可以同可视化组件一同使用

另请参阅

在多线程服务器应用程序中使用 ABBYY FineReader Engine

24.03.2023 8:51:52

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.