I researched the asynch and await syntax here and here. It really helps to understand the usage but I found an intriguing syntax example on MSDN which I just don\'t understa
The code you've given is an anonymous function written as a lambda expression.
So what's really happening is that for the timer elapsed event you're assigning the EventHandler as async ( sender, e ) => await HandleTimer();.
which translates to something like
timer.Elapsed += AnonFunc;
async void AnonFunc(object sender, EventArgs e)
{
await HandleTImer();
}
It seems that it's the lambda that's tripping you up.