This is a streaming call, the method will be processed in the form stream.
Nothing wrong with that, if you look at it from a conceptual point of view.
Timers are more elegant for such tasks. However, it may happen that a timer with an interval of 10 ms slows down the GUI, which is why Invoke was probably used.
You do not need an InvokeRequired call, as it is clear that the control is in a different thread. In addition, BeginInvoke needs to be called only if you want to call the method asynchronously, which is clearly not the case.
Regarding your editing: No, the message queue will not be clogged. The event will not be fired if the handler is not registered. Look again at your code;)
source share