Всем известно, что используя Vcl под Windows нельзя делать делать отрисовку не из главного потока ввиду особенностей канвы и vcl в целом.
Как ведет себя Firemonkey в этом случае на разных платформах? Может уже можно делать эти вещи из других потоков?
(опустим то, что это может привести к размазанности логики отрисовки).
Пробовал манипулировать ProgressBar-ом из потока - вроде никаких ошибок не было.
Нашел ответ от Brovin Yaroslav,
Вся отрисовка выполняется в отдельном потоке (известный как UI Thread), из других потоков рисовать в нем запрещено. При попытке это сделать, вы получите исключение. На андроиде оно несет название "ALOOPER_POLL_ERROR". На других платформах будет немного другой текст ошибки. Чтобы отрисовка происходила в главном потоке (UI Thread) нужно добавить синхронизацию потоков через
TThread.Synchronize
или
TThread.Queen
Получается под андроидом это в порядке вещей или UI Thread = Main Thread?
Вопрос
serser
Всем известно, что используя Vcl под Windows нельзя делать делать отрисовку не из главного потока ввиду особенностей канвы и vcl в целом.
Как ведет себя Firemonkey в этом случае на разных платформах? Может уже можно делать эти вещи из других потоков?
(опустим то, что это может привести к размазанности логики отрисовки).
Пробовал манипулировать ProgressBar-ом из потока - вроде никаких ошибок не было.
Нашел ответ от Brovin Yaroslav,
Получается под андроидом это в порядке вещей или UI Thread = Main Thread?
Изменено пользователем serserСсылка на комментарий
12 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.