# Update GUI via Asynchronous thread

**URL:** <https://forum.inductiveautomation.com/t/update-gui-via-asynchronous-thread/9666>\
**Category:** Ignition\
**Created:** [February 5, 2015, 9:41pm UTC](https://forum.inductiveautomation.com/t/update-gui-via-asynchronous-thread/9666 "2015-02-05T21:41:28Z")\
**Posts on this page:** 1\
**Showing post:** 25

<div class="post-metadata">

**Author:** ![bmeyers](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmeyers/32/37453_2.png) [@bmeyers](https://forum.inductiveautomation.com/u/bmeyers)\
**Post date:** [August 12, 2020, 2:10pm UTC](https://forum.inductiveautomation.com/t/update-gui-via-asynchronous-thread/9666/25 "2020-08-12T14:10:09Z")

</div>

> [@Loading bar during script execution](http://forum.inductiveautomation.com/t/loading-bar-during-script-execution/11520/2):
>
> In general, any script in a GUI should run in \< 0.1 second unless it’s put in the background. [system.util.invokeAsynchronous()](https://docs.inductiveautomation.com/display/DOC/system.util.invokeAsynchronous) is the tool you need to kick off your script. However, from the background, it isn’t safe to interact with the UI at all (Like, lock up or crash the whole client). So your script must collect it’s results and pass them to a script called from [system.util.invokeLater()](https://docs.inductiveautomation.com/display/DOC/system.util.invokeLater), which will run in the GUI thread and can place your results into the target components. For a progre…

Besides getting the data from the table I think i'm following all processes correctly in my above example. Instead of using system.util.invokeLater() I use the assignLater you mention from later.py.

---

_[View the full topic](https://forum.inductiveautomation.com/t/update-gui-via-asynchronous-thread/9666)._
