HELP.....

I need to know the most accurate way of getting Milliseconds.
I am performing reading from a serial port and need to know the exact time that data was read in (to the nearest 5 milliseconds).

I've tried GetTickCount(), System.Environment.TickCount,
but with both of them, my data looks like this:

448222813726835
448222813726835
448222813726835
448222813726845
448222813726845
448222813726856
448222813726856
448222813726856
448222813726866
448222813726866
448222813726876
448222813726876
448222813726876
448222813726886
448222813726886

This tells me that it must be rounding or is not accurate enough because although it says, the first number 3 times(448222813726835 ) it is probably not really taking 3 or 4 readings at the same time.

Any suggestion???
Cheers,
Bebandit