Timerの精度云々
C#のTimerはSystem.Timersのもの、System.Threadingのもの、GUI用のもの(Forms, WPF)があって云々とかは特にここでは触れません。とりあえずUI用じゃなければTimersのものを使っときましょう。
また、いずれのタイマーも精度はよろしくありません。実測では15ms程度の分解能しかありませんでした。本当に精度が欲しいならwhileループでStopwatchの監視するのが一番手っ取り早いと思います。
以下では意外と見向きされないTimerの特徴を実測で調べたので、Q&A形式で紹介していきます。なおタイマーはフリーラン状態(AutoReset==true)とします。実測環境は.NET6.0です。