wxPython: GUI de subprocesos -> Uso del controlador de eventos personalizado

Estoy tratando de aprender cómo ejecutar un hilo desde la aplicación GUI principal para enviar / recibir mi puerto serie mientras mantengo viva mi GUI. Mis mejores intentos de Google me han llevado a la wiki de wxpython en:http://wiki.wxpython.org/LongRunningTasks que proporciona varios ejemplos. Me decidí a aprender el primer ejemplo, que implica iniciar un hilo de trabajo cuando se selecciona el botón en particular.

Tengo problemas para entender la definición de evento personalizado:

def EVT_RESULT(win, func):
    """Define Result Event."""
    win.Connect(-1, -1, EVT_RESULT_ID, func)

class ResultEvent(wx.PyEvent):
    """Simple event to carry arbitrary result data."""
    def __init__(self, data):
        """Init Result Event."""
        wx.PyEvent.__init__(self)
        self.SetEventType(EVT_RESULT_ID)
        self.data = data

Principalmente el

def EVT_RESULT(win, func):
    """Define Result Event."""
    win.Connect(-1, -1, EVT_RESULT_ID, func)

Creo que EVT_RESULT se coloca fuera de las clases para que ambas clases puedan llamarlo (¿global?)

Y ... la aplicación GUI principal monitorea el progreso del hilo a través de:

# Set up event handler for any worker thread results
EVT_RESULT(self,self.OnResult)

También noto que en muchos ejemplos, cuando el escritor usa

from wx import *

simplemente unen las cosas

EVT_SOME_NEW_EVENT(self, self.handler)

Opuesto a

wx.Bind(EVT_SOME_NEW_EVENT, self.handler)

Lo que no me ayuda a entenderlo más rápido. Gracias,