如何在C++中处理Python的KeyboardInterrupt?

8 投票
1 回答
896 浏览
提问于 2025-04-16 05:46

我有一个用C++写的简单库,现在想为它创建一个Python的包装器,使用的是boost.python。里面有些函数执行时间很长(超过30秒),我希望能让它们可以被中断,也就是说,当我在Python解释器里按下ctrl-d来触发KeyboardInterrupt时,C++那边能有办法响应这个中断。

请问有没有什么办法可以做到这一点?我在boost.org和python.org上找不到关于中断和boost.python的相关信息。

1 个回答

5

每隔一段时间调用一下 PyErr_CheckSignals() 这个函数。

撰写回答