등록 된 ATEXIT 기능이 PyOBJC의 AppHelper.RuneventLoop ()에서 실행되도록하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1255025

  •  12-09-2019
  •  | 
  •  

문제

내가 왜 내가 등록했는지 궁금합니다.

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

물론 나는 언제 의지 알고 있습니다 atexit 작동하지 않습니다. 내가 댓글을 달 때 AppHelper.runEventLoop() 그만큼 atexit 기능이 호출됩니다. 나는 또한 내 탐색했다 pyobjc 계란과 나는 아래에서 보았다 __init__.py 아래에 objc 다음 코드를 패키지하십시오.

import atexit
atexit.register(recycleAutoreleasePool)

나는 계란 내에서 어떤 참조를 찾지 못했습니다. 나는 또한 주위의 시험을 둘러싼 주변을 둘러싼 노력했다 AppHelper.runEventLoop(), 마지막 블록의 명령은 호출되지 않습니다.

누군가가 나를 도울 수 있기를 바랍니다.

추신, 나는 응용 프로그램 대의원을 사용하고 싶지 않다고 가정합니다. applicationShouldTerminate: 방법...

도움이 되었습니까?

해결책

이벤트 루프가 프로세스를 갑자기 종료 할 수 있기 때문에 대의원이 필요하다고 생각합니다. os._exit) 따라서 파이썬 런타임에 종료 코드를 실행할 수있는 기회를 제공하지 마십시오. finally 조항, atexit 기능 등

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top