通常の CTRL+C 割り込みコマンドを使用して、cython で長い関数を中断できるようにしたいと考えています。私の C++ long 関数は、Cython コードから while ループ内で繰り返し呼び出されますが、ループ中に「割り込み」を送信して while ループをブロックできるようにしたいと考えています。
また、割り込みは longFunction() が終了するのを待つ必要があるため、データが失われたり、不明な状態のままになったりすることはありません。
これは私の最初の実装の 1 つであり、明らかに機能しません。
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()
)