Por que os elementos da interface do usuário sempre devem ser criados / atualizados a partir do thread da interface do usuário?

Por que os elementos da interface do usuário sempre devem ser criados / atualizados a partir do thread da interface do usuário?

Em (quase?) Todas as linguagens de programação, os elementos da interface do usuário podem ser acessados ​​/ modificados com segurança apenas pelo thread da interface do usuário. Eu entendo que é um problema de acesso e sincronização concorrente padrão, mas é realmente necessário? Esse comportamento é imposto pelas linguagens de programação ou pelo sistema operacional? Existem linguagens de programação onde esta situação é diferente?

questionAnswers(3)

yourAnswerToTheQuestion