Почти все библиотеки GUI работают, полагаясь на API базовой операционной системы. Когда вы переходите на «кроссплатформенность» в своих требованиях, это становится еще более строгим, поскольку теперь вам приходится полагаться на поддержку трех отдельных платформ.
Таким образом, я подозреваю, что вы обнаружите, что каждая (разумная) библиотека графического интерфейса будет иметь сходство с потоками.
При этом почти каждая библиотека поддерживает создание работы из других потоков, а фоновые потоки выполняют "обработку", пока пользовательский интерфейс хорошо и отзывчиво сидит в основном потоке пользовательского интерфейса. Я бы предложил переработать ваш дизайн, чтобы ваши операции работали с фоновыми потоками, а не с вашим пользовательским интерфейсом.