gpt4 book ai didi

c# - Web API/WCF 如何保持对象存活

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:07 24 4
gpt4 key购买 nike

我有一个引擎(ABBYY FlexiCapture 引擎),我想将它与 REST 服务(WebAPI 或 WCF)一起使用。发动机启动初始化需要 30 秒。每个请求都太长了。我希望引擎加载服务启动并保持在“预热”状态。我怎样才能用 WebAPI 或 WCF 做到这一点? (最好的方法是保持线程与引擎保持事件状态)。PS:抱歉我的英语不好。

-- 来自 ABBYY 范例库

private void ProcessImages()
{
trace("Loading FlexiCapture Engine...");
IEngine engine = LoadEngine();
try
{
string samplesFolder = FceConfig.GetSamplesFolder();

trace("Creating and configuring the FlexiCapture Processor...");
IFlexiCaptureProcessor processor = engine.CreateFlexiCaptureProcessor();
processor.AddDocumentDefinitionFile(samplesFolder + "\\SampleProject\\Templates\\Invoice_eng.fcdot");
// ....

trace("Adding images to process...");
processor.AddImageFile(samplesFolder + "\\SampleImages\\Invoices_1.tif");
// ....

trace("Recognizing the images and exporting the results...");

while (true)
{
// Recognize next document
IDocument document = processor.RecognizeNextDocument();
// processing recognized document...
}
}
finally
{
UnloadEngine(ref engine);
}
}

private IEngine LoadEngine()
{
// FlexiCapture Engine can be loaded in three diffrent ways:
// 1) Directly, as in this sample
// 2) As an inproc server (using COM infrastructure)
// 3) As an out-of-proc server in a worker process (using COM infrastructure)

IEngine engine;
int hResult = InitializeEngine(FceConfig.GetDeveloperSN(), null, null, out engine);
Marshal.ThrowExceptionForHR(hResult);
return engine;
}

我想创建引擎。之后,我将创建和配置多个 FlexiCapture 处理器。 (需要很长时间,我想在服务启动时做)然后,当用户添加图像时 - 我将使用其中一个处理器来识别它们。

启动时:创建引擎 -> 创建多个处理器(+配置它们);在方法调用上:选择一个免费处理器 -> 识别用户图像。

最佳答案

也许,您需要实现引擎的静态单例实例并使用上下文

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
public static class EngineContainer
{
private static Engine _engine { get; set; }
public static Engine GetEngine
{
get { if (_engine == null) Init(); return _engine; }
}
}

关于c# - Web API/WCF 如何保持对象存活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25718375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com