wxPython 이벤트가 순서대로 게시되나요?
-
06-07-2019 - |
문제
동일한 스레드에서 wxPostEvent/wxCallAfter를 사용하여 여러 이벤트가 게시되는 경우버튼 클릭 시 동일한 순서로 처리되어야 합니까?
아래 예에서 wx.Callafter는 이벤트를 게시하는 데 사용되며, 이는 결국 콜백 함수를 호출합니다. 이벤트는 wx.CallAfter에 전달된 것과 동일한 순서로 호출됩니다.
def onbutton(self, event):
wx.CallAfter(func1)
# some more code
wx.CallAfter(func2)
해결책
CallAfter는 이벤트를 이벤트 큐에 게시하며 순서대로 처리되어야 합니다.그러나 함수 완료가 아닌 유휴 이벤트 시 처리되므로 유휴 이벤트의 타이밍에 따라 func1이 완료되기 전에 func2 to가 처리될 수 있습니다(예:wx.Yield 등) 이에 대한 문제에 대한 논의가 있습니다. 여기, 그리고 그것은 일종의 까다로울 수 있는 것 같습니다.
다른 팁
나는 그것이 보장되어야한다고 믿는다. 스레드에서 직렬 포트에서 데이터를 가져 오는 코드가 있고 WX가 처리 할 이벤트를 시작합니다. 115kbps에서 데이터를 수신 할 때에도 의심 할 여지없이 여러 이벤트가 처리되기 전에 해고 될 때도 WX가 내 핸들러를 호출하여 데이터를 인쇄/로그인 할 때 데이터가 나타납니다.
제휴하지 않습니다 StackOverflow