在嵌入到MFC中的python脚本中创建一个新线程

2024-04-23 11:31:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我用MFC和python设计了一个小工具。 在这个程序中,我用C++与Python API进行协作。你知道吗

我需要:

    C++函数调用py-IrimalAlIZE(),然后用Python API调用Python函数B。你知道吗
  1. 在python脚本中,python函数B启动一个新的python线程E,它将创建一个新文件并向该文件进行一些输出。你知道吗
  2. 然后C++函数f调用PyFialAlIZE()。结束。你知道吗

但事情出乎意料地发生了。 B可以调用,但E不会启动。在调用F之后,Py_Finalize()被调用,然后E将启动并创建新文件。你知道吗

我想知道这有什么问题?看来Python是被C++阻塞的。这与python GIL有关吗?如果是,我该怎么办?你知道吗


Tags: 文件工具函数py程序脚本api事情
1条回答
网友
1楼 · 发布于 2024-04-23 11:31:31

我解决了这个问题,如果别人需要,我想把它贴在这里。你知道吗

  1. 在调用Py\u Initialize()之后,还需要PyEval\u InitThreads()。你知道吗
  2. 在调用Python函数B之后,GIL需要由PyEval\u ReleaseThread(PyThreadState\u Get())释放。然后线程E可以启动。你知道吗
  3. 在E结束后,PygStEnEnEnSuple()应在C++中调用以返回锁。你知道吗

相关问题 更多 >