for serial communications .NET offers the SerialPort class (starting .NET 2.0). It works fine for me. Warning: its DataReceived event fires on a ThreadPool thread (see #3 below).
There are several timer classes in .NET; which one you use best depends on what it needs to do.
Example: for Control manipulations (say displaying real time, updating every second) you best use System.Windows.Forms.Timer which ticks on the GUI thread.
only the main aka GUI thread is allowed to touch Controls; if you violate this rule strange things are bound to happen.
Since you only now told about serial ports and timers, I now suspect it is #3 that is biting you.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.