Do we really need to answer?
If you try to send notification byte-by-byte, you perform 10,485,760 invocations. Reading of one byte takes no time compared to one invocation. The invocation packs the delegate instance with all the data required to its call with parameters, queues this packet in the UI thread invocation queue and either returns (in case of
BeginInvoke
) or waits until the UI thread remove this package from the queue, performs the actual call using UI controls, processes events and notifies the thread calling
Invoke
. Do you want to measure the overhead of such notification compared to reading a byte? Perhaps you already can estimate it.
So, does the notification on each byte make any sense? Just think about it.
For more detail on invocation, please see my past answers:
Control.Invoke() vs. Control.BeginInvoke()[
^],
Problem with Treeview Scanner And MD5[
^].
—SA