从WebAPI调用本机方法时如何去除不必要的实例化

问题描述 投票:0回答:1

我有一个dotnet核心WebAPI Web服务器,需要执行用Win32 C ++编写的本机方法。问题是,每次调用此方法时,它都需要实例化一堆东西才能​​执行所需的操作,这会增加请求的延迟。 (它当前正在使用DLLImport来访问已编译DLL中的C ++方法。)>

我想做的是在服务器启动时启动某种长时间运行的进程,该进程将处理一次初始化,然后让我的WebAPI服务在此进程内部调用一个方法,该方法执行我实际上需要运行的代码立即,无需每次都初始化其依赖项。由于这是一个Web服务器,因此该过程将需要能够一次处理多个请求。

推荐的方法是什么?我拥有对C ++代码和WebAPI服务器代码的完全访问权限,因此我可以自由地完成所需的任何操作。

我有一个dotnet核心WebAPI Web服务器,需要执行用Win32 C ++编写的本机方法。问题是,每次调用此方法时,它都需要实例化一堆东西...

c# c++ .net windows asp.net-core-webapi
1个回答
0
投票

您可以在两者之间建立一些IPC基础架构。一种方法是使您的DLL COM兼容。即让DLL是某个COM类的COM服务器。然后,服务器进程将“ CreateInstance”一个类,该类将自动启动您的本机进程。这样,调用将只是普通的函数调用,COM将处理RPC。

© www.soinside.com 2019 - 2024. All rights reserved.