You mention "ticks," but your input parameter is a double named 'milliseconds. Since there are 10,000 ticks per millisecond; a tenth of a second would be 100 milliescond == 1 millio ticks, I wonder if you are actually passing in the 'ticks value. Are we on the same page here ?
There's "precision," and then there's "accuracy:" in .NET; those terms need to be carefully considered in coding: this article may be useful in your understanding the possible lack of
accuracy with using a WinForms Timer Control ... or using DateTime Struct, or using DateTime.Now: [
^].
If you really need the best accuracy available, at the millisecond level, I suggest you switch to using the 'StopWatch object which has possible nanosecond precision: [
^].
"I'm a bit confuzzled as to why I'm having issues using code which works for others." For this type of question, it is helpful if you shown a concrete example of your code as is, and clearly show the current result, and the expected result.