São eventos wxPython postou em ordem?
-
06-07-2019 - |
Pergunta
Se vários eventos são postados usando wxPostEvent / wxCallAfter do mesmo segmento por exemplo no clique de botão que é suposto ser processado no mesmo fim?
No exemplo abaixo wx.Callafter é usado para eventos de correios, que eventualmente irá chamar as funções de retorno de chamada, eles vão ser chamados mesma ordem, em que foram passados ??para wx.CallAfter
def onbutton(self, event):
wx.CallAfter(func1)
# some more code
wx.CallAfter(func2)
Solução
mensagens CallAfter os eventos para a fila de eventos e estes devem ser processados ??em ordem. Ainda assim, eles são processados ??em eventos ociosas, não com base na conclusão de função, de modo que o func2 para poderiam ser processados ??antes func1 é feito, dependendo do calendário de eventos ociosas (por exemplo wx.Yield, etc.) Há uma discussão sobre um problema com este aqui , e parece que ele pode ser espécie de complicado.
Outras dicas
Eu acredito que deve ser garantida. Eu tenho algum código que agarra dados da porta serial em um fio e dispara eventos para wx a alça. Mesmo quando a recepção de dados em 115kbps - onde ele iria, sem dúvida, disparar vários eventos antes que eles são processados ??-. Os dados mostram acima a fim quando wx chama meu manipulador para imprimir / logout os dados