Ранее в некоторых программах у меня при нажатии на кнопку начинался процесс обработки данных, а окно зависало и я не мог понять как от этого избавиться, и также для обновления строки состояния я делал операцию в отдельном потоке, при этом для Linux это не работало. Хотя тот же AutoIt3 не имел такой проблемы, окно не висло и строка состояния обновлялась.
В итоге попал на тему "Window not responding after a few seconds" - "Окно не отвечает через несколько секунд":
https://www.purebasic.fr/english/viewtopic.php?t=81399
где Фред предлагает просто вызвать WindowEvent(). То есть функция позволит окну получить системные события. Я ещё не тестировал, но я сразу понял смысл этого сообщения, то есть в тех местах где необходимо вставить функцию обновления строки состояния надо вызвать WindowEvent(), то есть не получая событий окно обновит все свои состояния (мышь, калбэки и т.д.)
При этом если функция выполняется долго, где то через минуту окно будет показывать что оно зависло, то ориентируясь по времени можно в выполняемой функции вызвать WindowEvent(), чтобы не дать окну зависнуть. При этом в отличии от WaitWindowEvent() фунцкия WindowEvent() не будет вставлять задержки делая цикл медленным (в вызванной процедуре по кнопке)
Но ведь нигде в примерах справки раздела "StatusBar" этого нет. То есть фактически нет примера нормальной работы длительной операции с выводом результатов в строку состояния.