我希望能够使用通常的 CTRL+C 中断命令用 cython 中断一个长函数。我的 C++ long 函数在 Cython 代码的 while 循环内重复调用,但我希望能够在循环期间发送“中断”并阻止 while 循环。
中断还应等待 longFunction() 完成,以免数据丢失或保持未知状态。
这是我的第一个实现之一,显然不起作用:
computed=0;
print "Computing long function..."
while ( computed==0 ):
try:
computed = self.thisptr.aLongFunction()
except (KeyboardInterrupt, SystemExit):
computed=1
print '\n! Received keyboard interrupt.\n'
break;
(psself.thisptr
是指向当前实现的类的指针aLongFunction()
)