【问题标题】:C++ to C# bridge with multiple processes具有多个进程的 C++ 到 C# 桥接器
【发布时间】:2015-11-24 18:24:34
【问题描述】:

我有处理文档查询的 C++ 库和应该使用该库打开和查询文档的 ASP.NET 5(.NET Core) Web 服务器。

我想将 C++ 库与 Web 服务器隔离(所以如果库崩溃它不会导致服务器崩溃)。所以我正在考虑为每个打开的文档生成单独的进程,并使用套接字将查询传递给这些进程。

问题是:我应该如何以及在哪里处理进程生成和管理?是在 C# 端、C++ 端还是使用一些中间件更好?是否有任何库可以帮助我管理进程、杀死冻结的进程、保持额外进程处于活动状态等等?

【问题讨论】:

  • 这个问题太笼统了。
  • 是的,但我只是没有足够的知识来缩小范围
  • 要改变这一点,请使用书籍和教程来学习多语言 c/s 编程,然后再推迟。
  • 你是对的,如果你知道一些地方我可以找到关于实现这些东西的信息和注意事项,或者任何已经实现它的库,我会很高兴。也许我什至不需要它,我可以将 Nginx 或其他东西用于我的目的

标签: c# c++ multiprocessing asp.net-core isolation


【解决方案1】:

产生一个进程是正确的方法。这样您就不会冒险让外部库关闭您的服务器进程。当然,您仍然会暴露于完全破坏环境的外部进程(例如使操作系统崩溃),但这与此无关。

既然你用asp.net-5 标记了这个问题,我假设你正在使用它。虽然没有任何内容,至少在 Microsoft 作为 ASP.NET 5 的一部分发布的内容中没有,但对于从您的 Web 服务器管理进程,您可以查看 dnx-watch 的代码。观察者管理一个外部进程。

【讨论】:

  • 非常感谢! ProcessWatcher 看起来是用 C# 编写 ProcessManager 的一个很好的起点。但是我想写一个稳定的跨平台流程管理器有很多细微差别,所以我先寻求更成熟的解决方案,然后再实现自己的解决方案。
猜你喜欢
  • 2021-09-11
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
相关资源
最近更新 更多