wxPython으로 옵저버 디자인 패턴을 구현하려고합니다. 나는 막대한 양의 데이터를 백그라운드로 계산하는 모델링 어플리케이션을 가지고있다. 때로는 GUI에서 모델의 출력을 표시하고 싶습니다. 이것은 여러 색상의 사각형 그리드입니다. 다른 때는 GUI를 표시하지 않고 계산을 수행해야합니다.wxPython의 옵저버 패턴
관찰자 패턴의 장점은 방금 추가하거나 한 줄의 코드,
self.observers.append(MyWxGui())
또는 이와 유사한 같은 것을 제거하여 GUI 또는하지 연결 수 있다는 것입니다. 이제는 하나의 스레드에서 실행하려면 계산이 필요하고 wx GUI는 다른 스레드에서 실행해야합니다. 메인 스레드에서 실행)
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
나는 그런 http://wiki.wxpython.org/LongRunningTasks 등의 wxPython에서 멀티 스레딩에 대한 자습서를 읽을 수 있지만 그들은 모두 주회 돌이를 (이 : 나는 wxPython을 함께이 일을 시도하지만 난 항상 치명적인 I/O 오류가 그리고 보조 스레드에서 장기 실행 작업보다, 나는 다른 방법으로 라운드해야합니다. 메인 스레드에서 Mainloop()을 사용하면 계산을 진행하는 대신 GUI의 이벤트를 기다리는 동안 프로그램이 중단되기 때문입니다.
하위 스레드에서 ClientDC 나 PaintDC와 같은 Device contexts (DC)를 조작 할 수없는 것도 보았습니다.하지만 동일한 스레드 내에서 전체 wx 코드를 실행하고 있습니다.
Mainloop() 및 모든 wx GUI를 주 응용 프로그램이 아닌 자체 스레드에서 실행할 수 있습니까?
wxPython 2.8.11.0을 Ubuntu 10.10에서 실행 중입니다.
(wx) 파이썬에서 관찰자 패턴의 (스레드되지 않은) 구현을 알고 있습니까? 아래에 언급 된 바와 같이 Pubsub는 전 세계 게시자 - 구독자의 일이며 아직 구현 된 관찰자 패턴을 찾지 못했습니다. – virtualnobi