【问题标题】:How do I pass/catch/respond to Python's KeyboardInterrupt in C++?如何在 C++ 中传递/捕获/响应 Python 的 KeyboardInterrupt?
【发布时间】:2010-10-20 03:53:57
【问题描述】:

我有一个用 C++ 编写的简单库,我正在为使用 boost.python 创建一个 Python 包装器。有些函数需要很长时间才能执行(超过 30 秒),我想让它可中断,这样当我在 python 解释器中按 ctrl-d 触发 KeyboardInterrupt 时,我能够以某种方式在 C++ 中响应它。

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

【问题讨论】:

  • 如果您有一个最小的工作示例,如果您将其包含在内将是最有帮助的。谢谢。
  • 我找到了一个例子here,但是很复杂。碰巧它使用 PyErr_CheckSignals()。
  • 下面的答案,使用 PyErr_CheckSignals() 效果很好。谢谢。

标签: c++ python interrupt boost-python


【解决方案1】:

时常致电PyErr_CheckSignals()

【讨论】:

  • 一个最小的完整工作示例在这里会很有帮助。
猜你喜欢
  • 2022-08-03
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多