如何设置计时器代码在C#中异步运行

我有以下方法

public static class PublisherClass {
    public static async Task PublishToMethod(string methodName, string message) {
        switch (methodName) {
        case "start":
            PayloadCreator.SetTimer(timeInterval);
        }
    }
}

public static class PayloadCreator {

    public static void SetTimer(int timeInterval) {     
        aTimer = new System.Timers.Timer(timeInterval);
        aTimer.Elapsed += SendPeriodic;
        aTimer.AutoReset = true;
        aTimer.Enabled = true;
    }

    public static async void SendPeriodic(Object source, ElapsedEventArgs e) {      
        Console.WriteLine("Starting to send periodic Telemetry at {0:HH:mm:ss.fff}", e.SignalTime);
        await SendPeriodicTimeSeries(PublisherClass.TimeSeriesTopic, PublisherClass.TelemetrySingle, PublisherClass.Configuration);
        await SendPeriodicAlarm(PublisherClass.AlarmTopic, PublisherClass.AlarmSingle);     
    }
}

每当调用“ PublishToMethod”时,Timer就会启动,并会定期发送某些内容的定期调用。我觉得Timer代码不是完全异步的。如果我两次调用,它的行为就会有所不同。定期时间间隔中断。

我需要运行多次调用Timer的异步调用的Timer方法。我该如何实现?