【发布时间】:2020-01-01 19:13:21
【问题描述】:
我想从 python 运行一些 c# 函数。
我知道这可以做到
os.system("myapp.exe")
和其他类似的调用,但这会创建一个新进程。
我想让 c# 代码从运行 python 代码的同一进程中运行。
如何做到这一点?
我想到的一种方法是将c#编译为dll,并从那里调用它的函数,但我仍然无法使这种方式工作。
有没有更好的办法?
【问题讨论】:
-
那是不可能的。一个应用程序可以有一个进程。在您的情况下,该过程是 Python 解释器。您不能在同一进程中运行另一个应用程序。
-
@RayWu 请查看编辑。为什么不可能?
-
一个进程只能有一个应用程序。另外,Python只能直接调用非托管DLL,即用C或C++编写的DLL。
-
您的用例是什么?我怀疑这可能是 XY 问题。
-
@RayWu 我的主要项目是用python编写的。我们有一些承包商提供了我们不想用 python 重写的 c# 代码。我们需要将 c# 代码(可能有一些 API 更改)集成到主项目中。我建议从 python 调用 c# .exe,并通过文件或套接字与其通信,但有人担心必须管理子进程,以及额外进程的维护开销和额外错误,所以我试图寻找替代品