The title of the question is specifically about timers, but if we look at it like "How to call the asynchronous programming method after a while?" then you can do this without using a timer.
var task2 = Task.Run(async () => { while (true) { try { await MyMethod2(); } catch {
Please note that this will have a different time (the timer will be called at intervals, the code above will be called each (runtime + sleep_time), but even if MyMethod2 takes a lot of time, it cannot be called twice. Having said that, you can calculate how long does it take to run "every x minutes".
source share