【发布时间】:2017-11-08 11:36:20
【问题描述】:
我想创建一个简单的 python 网络服务器来公开我的 c++ 应用程序的一些功能。
我已经嵌入了 python,我可以调用 python 代码并回调 c++ 函数进行交互。
我的问题是能够在不锁定应用程序的情况下使网络服务器运行。
对网络服务器使用 python 线程在初始化完成后立即停止服务器。如何让 Python 解释器有时间继续线程处理?
旧解释
如果我创建网络服务器(例如使用cherrypy),从浏览器调用c++ 函数也很容易......缺少的是c++ 应用程序被锁定。我的想法是使用 python 线程,但是从 test 开始,python 代码要锁定,直到调用另一个 python 代码(任何 python 代码)。
所以我的结论是,在 c++ 应用程序(MFC 应用程序)的事件管理期间,我需要给 python 解释器一些时间
这是一个最佳实践吗?是否有一些 API 函数可以做到这一点?
其他解决方案是创建一个 c++ 线程并使用 PyThread* 函数启动解释器...但我担心的是 GIL 会锁定 GUI 应用程序。
再说一遍:这类工作的最佳做法是什么?
【问题讨论】:
-
请不要询问您的解决方案。请描述您尝试解决的问题。你在这方面做得还不够好。
-
@IInspectable 我已经修改了我的问题....但是如果你说我做得不好,请同时添加一个动机,这样我可以提出一个更好的问题。
-
你可能应该拿tour,当它提供给你时。请特别阅读How to Ask。更新没有做任何事情来澄清这个问题。当您不了解 MFC、C++ 或 Windows API 时,我们无法帮助您编写 MFC 代码。这些类型的问题通常不会获得有价值的帮助。
标签: python c++ multithreading mfc