So I am doing a somewhat lengthy progress in another class, and I want to give some progress info to my GUI. I am aware of background worker, and may use it for this if I HAVE to, but this operation is so simple that I feel that background worker is a bit more than I need. Instead, I am using eventhandlers to handle the updates, but the operation is inconsistent.
When a point has been reached in the worker class, it puts up an event telling about its progress. In the GUI class, I have an eventhandler listening for that event. When it finds it, it makes a string about it, and puts that string as the text of a label.
I then call labelname.Update() in that eventhandler, but nothing happens. Here’s the really confusing part, I put a textbox there instead, set its text, and then called textboxname.Update(), and it worked. Why would .Update() not work for one control, but not another. Is there a trick to get it to work for a label?
I am turning Roken’s comment into an answer, but his remark is the answer. You must implement the background operation in a background worker, period.
See this excellent article about the why and how.