IWorkProcessControl Interface

This interface is used by a work process to control whether its parent process is alive. This interface can be requested from the OutprocLoader object in order to:

  • obtain the ID of the host process,
  • manage the priority of the work process (by default it is Below Normal),
  • set the identifier of the parent process.

When a process finishes normally, all COM objects are released and work processes hosting these objects also finish normally. If process terminates abnormally (hard exception or manually killed) the COM objects are not released and work process will remain loaded. To address this issue and make your server more robust you can make the work process watch if its parent process is still alive and terminate if not.

Methods

Name Description
GetWorkProcessId

Returns the ID of the process which hosts FlexiCapture SDK. The program which uses FlexiCapture SDK can control whether the host process is alive and can terminate the process if necessary.

Note: It is important to obtain the identifier of the process first, and only then start the work with FlexiCapture SDK. This is due to the fact that all FlexiCapture SDK method calls are performed sequentially, therefore, when FlexiCapture SDK is not responding, the call to this method will remain in the queue and will not finish too.

SetParentProcessId Sets the identifier of the parent process for the work process. When the parent process terminates all its work processes will also terminate.
SetPriorityClass Sets the priority class for the work process.

Samples

C# code

See also

OutprocLoader

Different Ways to Load Engine Object

UsingABBYY FlexiCapture SDKin Multi-Threaded Server Applications

15.08.2023 13:19:30

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.