您可以
Py_AddPendingCall()用来添加引发下一个检查间隔的函数引发异常(有关
sys.setcheckinterval()更多信息,请参阅文档)。这是一个带有
Py_Exit()call的示例(确实对我有用,但可能不是您所需要的),将其替换为
Py_Finalize()或之一
PyErr_Set*():
int quit(void *) { Py_Exit(0);}PyGILState_STATE state = PyGILState_Ensure();Py_AddPendingCall(&quit, NULL);PyGILState_Release(state);对于任何纯python代码而言,这应该足够了。但是请注意,某些C函数可以作为单个操作运行一段时间(有一个示例运行长时间的regexp搜索,但我不确定它是否仍然有用)。



