## Ejecutar macros en otros hilos. Las macros se ejecutan en un hilo que bloquea cualquier otro proceso dentro de la aplicación. Si ejecutas la siguiente macro `main`, nota que no puedes hacer algo más dentro de LibreOffice durante los 5 segundos que dura el proceso. ```py import easymacro as app def hacer_pausa(segundos): app.sleep(segundos) app.debug('He terminado') return def main(): hacer_pausa(5) app.msgbox('Fin...') return ``` Hasta que aparece el cuadro de mensaje con la palabra `Fin` y lo cierras, el usuario puede seguir usando la aplicación. En algunos casos no queremos esto, para ello se usan los hilos de ejecución.
### **run_in_thread** Ahora ejecutamos la macro en otro hilo, "decorando" cualquier macro con `run_in_thread` ```py @app.run_in_thread def hacer_pausa(segundos): app.sleep(segundos) app.debug('He terminado') return def main(): hacer_pausa(5) app.msgbox('Fin...') return ``` Nota que ahora el mensaje aparece inmediatamente y no tras los 5 segundos. !!! warning "Cuidado" Ponga mucha atención en **no ejecutar macros en otros hilos** que dependen de algo suceptible de ser cambiado o interceptado por el usuario, por ejemplo, la celda activa.