The data (that is the position of the tags) will be received by two
different threads (anyway I need one for the WCF channel) and will be
enqueued in a class/global variable. The "main thread" will then
dequeued them and make computation.
Then it seems to me that a Forms.Timer is exactly what you need. Just
don't forget to lock the data queue when the main form thread is dequeuing
the data, and when the receiving threads are enqueing the data. However,
since you should already be doing that now, I'm guessing that's not an
issue for you.
Though, that said there is one caveat: due to the way that Windows works,
none of the timers are particularly accurate, and the Forms.Timer is the
least accurate. It has a resolution of (according to the documentation)
only 55 milliseconds. In some applications, this would be unacceptable.
It sounds to me as though you're dealing with much larger time values than
that, and an error of 55 milliseconds isn't a problem. But if it is,
you'll have to use a different Timer class (there are two others).
Pete