1

なぜ私がatexit関数を登録したのか疑問に思っています...例:

import atexit
atexit.register(somefunc)
...
AppHelper.runEventLoop()

もちろん、いつatexitうまくいかないかはわかっています。コメントアウトするAppHelper.runEventLoop()と、atexit関数が呼び出されます。pyobjcまた、卵を閲覧したところ、パッケージの__init__.pyobjcに次のコードが表示されました。

import atexit
atexit.register(recycleAutoreleasePool)

私は無駄な卵の中の参照を探しました。また、try-finallyシェルを囲んでみAppHelper.runEventLoop()ましたが、finallyブロックのコマンドが呼び出されません。

誰かがここで私を助けてくれることを願っています。

PSアプリケーションデリゲートのメソッドを使用したくないと仮定してapplicationShouldTerminate:...

4

1 に答える 1

1

デリゲートが必要だと思います。そうしないと、イベントループがプロセスをかなり突然終了する可能性があり(のようなもの)、Pythonランタイムに句や関数os._exitなどの終了コードを実行する機会が与えられないためです。finallyatexit

于 2009-08-10T16:37:20.970 に答える