Client updates UI from another thread