"The Timer tick event will invoke the EventHandler when the UI Thread is idle and processing window messages."
I'm wondering how this works internally. How does the UI thread only process window messages when it's idle? What happens to window messages when the UI thread is not idle?
Where does the UI thread fetch window messages from when it's idle? How does it fetch them? How does it ignore them when it's busy? Why don't the window messages stack up waiting to be processed? Does the UI thread decide to subscribe to window messages when it's idle, and unsubscribe from window messages when it's busy?