Why does .NET have 5 version of a Timer class? Because reasons… but don’t worry because .NET 6 adds a 6th version called PeriodTimer. Let’s take a look at the new PeriodTimer API and how it compares to the traditional System.Threading.Timer API.
https://docs.microsoft.com/en-us/dotnet/api/system.threading.periodictimer?view=net-6.0