Я работаю с Python UNO, используя «внутреннюю» (Libreoffice — хост-процесс) версию, в которой интерпретатор Python находится внутри Libreoffice/Openoffice. Я хотел бы сделать код неблокирующим... то есть, как только код вызывается как макрос, он запускает второй поток и возвращает основной поток обратно в Office, чтобы он не блокировал пользовательский интерфейс, пока он продолжает работать очень длительный процесс (10-20 минут времени исполнения).
Когда я попробовал именно это, LibreOffice зависает навсегда. Я искал почти везде, но, кроме странной ссылки на импорт scipy во второй поток, а затем блокировку во время ожидания в этом потоке (myrhread.join()), похоже, нигде это не делается.
В качестве альтернативы можно ли создать новый ServiceManager, чтобы я мог вызвать второй процесс, а затем связать его с ServiceManager, чтобы я мог вернуться в LibreOffice обычным способом, не блокируя его «призрачным потоком»?
Tools -> Macros -> Run Macro
) или извне с использованием прослушивающего экземпляра? Кроме того, что делает этот длительный процесс — изменяет ли он документ Writer или делает что-то внешнее, например, создает файл где-то еще в операционной системе? - person Jim K   schedule 03.03.2016