> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FineReader Engine in multithreadfähigen Serveranwendungen verwenden

> Führen Sie ABBYY FineReader Engine in multithreadfähigen Windows-Serveranwendungen aus: Verarbeiten Sie parallele Anfragen, Servicekonten und Hosts mit mehreren CPUs.

<Note>
  Dieses Thema gilt für FRE unter Windows.
</Note>

Die Verwendung von ABBYY FineReader Engine in Serveranwendungen hat einige Besonderheiten:

* Mehrere unabhängige Anfragen müssen gleichzeitig in mehreren Threads innerhalb eines Prozesses verarbeitet werden.
* die Engine läuft unter einem Serverbetriebssystem auf einem leistungsstarken Computer mit mehreren CPUs
* Verwendung mit speziellen Konten (Network Service, Local Service, ASPNET)

Bei der Entwicklung von ABBYY FineReader Engine 12 wurden die oben genannten Besonderheiten berücksichtigt. Deshalb wurden in die API Funktionen integriert, mit denen Sie threadsichere FineReader Engine-Objekte innerhalb eines Serverprozesses oder in separaten Prozessen verwenden können. Durch die Verwendung von FineReader Engine in mehreren Prozessen können Sie einen Pool von Objekten erstellen, die gleichzeitig arbeiten und die volle CPU-Leistung des Servers nutzen. Dies ist in den meisten Serverszenarien der optimale Ansatz.

<div id="loading-the-engine-object-into-a-server-application">
  ## Laden des Engine-Objekts in eine Serveranwendung
</div>

Am besten laden Sie die Engine per COM als Out-of-Process-Server in einen separaten Prozess in eine Serveranwendung. Mit dieser Methode werden alle Schwierigkeiten im Zusammenhang mit Multithreading automatisch vermieden: Sämtliche Operationen mit den Objekten von ABBYY FineReader Engine werden per COM serialisiert. Dadurch können Sie mehrere Engine-Instanzen in mehreren Prozessen erstellen und vom Serverprozess aus gleichzeitig mit ihnen arbeiten. Gleichzeitig ist diese Methode einfach anzuwenden. Das [Engine](/de/fine-reader/engine/api-reference/engine-object-iengine-interface)-Objekt wird mithilfe des Objekts [OutprocLoader](/de/fine-reader/engine/api-reference/engine-loaders/outprocloader) geladen, das die Schnittstelle [IEngineLoader](/de/fine-reader/engine/api-reference/engine-loaders/iengineloader) implementiert.

<Accordion title="C#-Code">
  ```csharp theme={null}
  IEngineLoader engineLoader = new FREngine.OutprocLoader();
  IEngine engine = engineLoader.InitializeEngine( customerProjectId, licensePath, licensePassword, "", "", false );
  // Die Engine wurde in einem separaten Prozess geladen
  try {
   ...
  } finally {
   engineLoader.ExplicitlyUnload(); // Kann entladen werden, wenn sie nicht mehr benötigt wird
  }
  ```
</Accordion>

Diese Methode hat jedoch einen wesentlichen Nachteil. Wenn sie mit speziellen Konten verwendet wird, sind unter Umständen Berechtigungen erforderlich, um OutprocLoader für diese Konten auszuführen. Dies und die Notwendigkeit, FREngine.dll zu registrieren, sind bei Serverprodukten jedoch nicht besonders problematisch, da Serveranwendungen in der Regel von erfahrenen Administratoren auf wenigen Computern installiert werden.

* Kontoberechtigungen können mit dem Dienstprogramm DCOM Config eingerichtet werden (geben Sie entweder DCOMCNFG in der Befehlszeile ein oder wählen Sie Systemsteuerung > Verwaltung > Komponentendienste). Suchen Sie in der Konsolenstruktur den Ordner Component Services > Computers > My Computer > DCOM Config, klicken Sie mit der rechten Maustaste auf ABBYY FineReader Engine 12.5 Loader (Local Server), und klicken Sie auf Properties. Daraufhin wird ein Dialogfeld geöffnet. Klicken Sie auf die Registerkarte Security. Klicken Sie unter Launch Permissions auf Customize und dann auf Edit, um die Konten anzugeben, die die Anwendung starten dürfen.

<Note>
  Beachten Sie, dass auf einem 64-Bit-Betriebssystem die registrierte DCOM-Anwendung in der 32-Bit-MMC-Konsole verfügbar ist, die mit der folgenden Befehlszeile ausgeführt werden kann:
</Note>

```
"mmc comexp.msc /32"
```

* Um `FREngine.dll` bei der Installation Ihrer Anwendung auf dem Computer eines Endbenutzers zu registrieren, verwenden Sie das Dienstprogramm `regsvr32`. Wenn Sie ein 64-Bit-Betriebssystem verwenden, wird standardmäßig die 64-Bit-Version von `regsvr32` ausgeführt. Verwenden Sie die folgende Befehlszeile:

```csharp theme={null}
regsvr32 /s /n /i:"<path to the Inc folder>" "<path to FREngine.dll>"
```

* Wir empfehlen, sowohl zum Debuggen Ihrer Serveranwendung als auch für ihren Betrieb eine Netzwerklizenz zu verwenden.

Außerdem können Sie über die Schnittstelle [IHostProcessControl](/de/fine-reader/engine/api-reference/engine-loaders/ihostprocesscontrol) die Priorität eines Hostprozesses verwalten und steuern, ob er aktiv ist.

Es gibt auch andere Methoden, ABBYY FineReader Engine zu laden. Diese haben jedoch bestimmte Eigenschaften, die ihre Verwendung in Serveranwendungen erheblich einschränken.

* ABBYY FineReader Engine kann über COM als In-Process-Server innerhalb des aktuellen Prozesses geladen werden. Diese Methode beseitigt außerdem automatisch alle mit Multithreading verbundenen Schwierigkeiten (alle Operationen mit den Objekten von ABBYY FineReader Engine werden über COM serialisiert) und ist einfach zu verwenden. Sie erlaubt jedoch keine gleichzeitige Verarbeitung mit mehreren Instanzen des Engine-Objekts, was die Leistung des Servers in vielerlei Hinsicht einschränkt. Ein weiterer Nachteil dieser Methode besteht darin, dass bei der Installation der Anwendung auf dem Computer eines Endbenutzers FREngine.dll registriert werden muss.
* FREngine.dll kann manuell geladen werden. Dies ist die Standardmethode zum Laden der Bibliothek. Bei dieser Methode müssen alle Operationen mit dem Engine-Objekt in demselben Thread ausgeführt werden, in dem das Engine-Objekt initialisiert wurde. Außerdem kann pro Prozess nicht mehr als ein Engine-Objekt initialisiert werden. Dies schränkt die Leistung des Servers erheblich ein. Aus diesem Grund empfehlen wir diese Methode nicht. Ein Vorteil dieser Methode besteht darin, dass bei der Installation der Anwendung auf dem Computer eines Endbenutzers keine Registrierung von FREngine.dll erforderlich ist.

Ausführliche Beschreibungen der drei in ABBYY FineReader Engine verfügbaren Lademethoden finden Sie unter [Different Ways to Load the Engine Object](/de/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/different-ways-to-load-engine).

<div id="samples">
  ## Beispiele
</div>

Das Codebeispiel [EnginesPool](/de/fine-reader/engine/guided-tour/samples#enginespool) enthält eine Implementierung eines Prozessor-Pools für eine Multithread-Anwendung, und Sie können mit der Entwicklung Ihrer eigenen Anwendung beginnen, indem Sie dieses Beispiel an Ihre Anforderungen anpassen.

<div id="see-also">
  ## Siehe auch
</div>

[Unterschiedliche Möglichkeiten zum Laden des Engine-Objekts](/de/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/different-ways-to-load-engine)
