Home >Backend Development >C++ >How Can I Safely Update a GUI Label from a Non-UI Thread?
Update GUI
In multi -threaded programming, updating the graphic user interface (GUI) from a thread other than the main GUI thread may be a challenge. This article discusses a simple way to update the label small components from separate threads.
Question:
Consider such a situation: the window runs on Thread1, and starts a separate thread from the window (Thread2). When Thread2 is processing files, the goal is to update the label on the window to reflect the current state of Thread2 operation.
Solution: Invoke () Method
The direct method of updating the GUI element from the non -UI thread involves the INVOKE () method. This method provides a method of entrusting commissioning on the UI thread to effectively allow communication between threads. Implement:
For example, to update the label, you can execute the following steps in the work thread (thread2):
In this code, the Invoke () method uses anonymous commission as a parameter. This commission defines code that updates the TEXT attribute on the UI thread. It should be noted that the Invoke () method will block the execution until the commission is completed, which makes this code synchronize.
The above is the detailed content of How Can I Safely Update a GUI Label from a Non-UI Thread?. For more information, please follow other related articles on the PHP Chinese website!