Elapsed.TotalMilliseconds (double) возвращает общее количество целых и дробных миллисекунд, прошедших с момента создания
например. секундомер, остановленный в 1.23456 секундах, возвратил бы 1234.56 в этом свойстве. См. TimeSpan.TotalMilliseconds на MSDN
Elapsed.Milliseconds (int) возвращает количество целых миллисекунд в текущей секунде
например. секундомер в 1.234 секунды вернул бы 234 в этом свойстве. См. TimeSpan.Milliseconds
ElapsedTicks (long) возвращает тики с момента запуска секундомера.
В контексте исходного вопроса, относящегося к классу Секундомер, ElapsedTicks - это количество прошедших тиков. Тики происходят со скоростью Stopwatch.Frequency, поэтому для подсчета истекших секунд вычислите: numSeconds = stopwatch.ElapsedTicks / Stopwatch.Frequency.
Старый ответ определял тики как число периодов в 100 наносекунд, что является правильным в контексте класса DateTime, но не корректным в контексте класса Секундомер. См. Секундомер. ElapsedTicks на MSDN.
ElapsedMilliseconds возвращает округленное число с точностью до ближайшей полной миллисекунды, поэтому может отсутствовать точность, которую может дать свойство Elapsed.TotalMilliseconds.
Elapsed.TotalMilliseconds - это двойное число, которое может возвращать время выполнения в частичную миллисекунду, тогда как ElapsedMilliseconds равно Int64. например секундомер с 0,0007 миллисекундами вернул бы 0, или 1234,56 миллисекунд вернул бы 1234 в этом свойстве. Поэтому для точности всегда используйте Elapsed.TotalMilliseconds.
См. Секундомер. Прошедшие миллисекунды на MSDN для уточнения.
С уважением,