如何在C++中传递/捕获/响应Python的KeyboardInterrupt?

8

我有一个简单的C++库,现在正在使用boost.python创建Python包装器。其中一些函数执行时间较长(超过30秒),我想让它们支持中断,这样当我在Python解释器中按下ctrl-d触发KeyboardInterrupt时,我可以以某种方式在C++中响应该中断。

有没有办法做到这一点?我在boost.org或python.org上找不到关于中断和boost.python的任何信息。


如果您有此问题的最小工作示例,如果您能够包含它,那将非常有帮助。谢谢。 - Faheem Mitha
我在这里找到了一个例子(http://mail.python.org/pipermail/cplusplus-sig/2010-February/015209.html),但它很复杂。碰巧它使用了PyErr_CheckSignals()函数。 - Faheem Mitha
下面的答案,使用PyErr_CheckSignals()函数很好地解决了问题。谢谢。 - Magnus W
1个回答

5

5
这里最有帮助的是提供一个最简完整的可运行示例。 - Faheem Mitha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接