The software im currently working on sometimes hangs when I close the serial port. Its intermittent and works fine 90% of the time but I clearly have an issue. When I ctl+Alt+Break it shows that its waiting on serial.Close().
I have lots a data coming in and out on the serial port which is being invoked to a number of forms so is this a threading issue?
Yes, this may be the case. See this post. See also here, which suggests that using BeginInvoke rather than Invoke may solve your problem.
Also, if you’re using a USB serial adapator, you could have a driver problem. Some of those drivers are poorly written and can cause a whole host of problems.