Pasar objetos wxPython como argumentos multiprocesador

Actualmente estoy escribiendo un programa en Python con una interfaz gráfica de usuario usando wxpython. El programa tiene una función que evalúa varios guiones de pitones y, por lo tanto, cuelga la interfaz gráfica de usuario. Estoy tratando de usar un proceso separado para esta función. El problema es que la función necesita algunas cosas de la interfaz de usuario; un listctrl y un textctrl, para actualizar la información sobre los scripts que se han ejecutado. Se recibe el siguiente error al intentar pasar objetos wxpython al proceso

PicklingError: Can't pickle <type 'PySwigObject'>: attribute lookup __builtin__.PySwigObject failed

Método que crea e inicia el proceso:

def CreateProcess():
    q = Queue()
    q.put(gui.caselist)
    q.put(gui.textlog)
    p = Process(target=runScripts, args=(q,))
    p.start()

Parte del método que ejecuta el proceso:

def runScripts(q):
    caselist = q.get()
    text = q.get()

Respuestas a la pregunta(1)

Su respuesta a la pregunta