I understand that an event handler executes on whatever thread that invoked the event. I further understand the need to update form controls only from the thread that created the controls. I am assuming that the UI thread is the one that created the form for the purpose of this question.
If the event is the result of a posted message, such as a paint message, isn't the handler then decoupled from the originating thread? If that is true, then any thread could invoke invalidation operations and the resulting paint would always occur on the UI thread since it is the one handling form messages.
This is how it maps out in my head at near 2:00 AM with a long-empty snack bowl by my side. Please clarify and correct so I can have a proper understanding of the mechanisms at work.