Many thanks for the links, they are very helpful. I should be able to make some progress now.


Just FYI, I want to get any data received from the serial port back onto the thread the class was created on (which happens to be the UI thread), so that when it is passed to my form, I (or anyone else that uses the class) do not have to check for .InvokeRequired. All the threading stuff is done within the class.