Если вы хотите, чтобы ваши события таймера происходили на отметке 200 мс, и просто пропустите одно (а не откладывайте их), если предыдущий все еще работает, вы можете использовать код блокировки.
Если вы используете метод Monitor.TryEnter тогда он вернет логическое значение, сообщающее вам, получил ли он блокировку (и, следовательно, если другой поток уже находится в заблокированном коде).Это позволит вам просто пропустить и дождаться следующего запуска, если вы хотите (или выписать отладочные сообщения с жалобами на то, что это занимает слишком много времени или что-то в этом роде).
То, является ли это хорошим решением, действительно зависит отваш таймер хочет сделать.Часто метод, предложенный другими для запуска таймера для следующего события после завершения предыдущего, более чем достаточен для работы.