The following can be used to delay the execution of a method in .NET. It does not require setting up a Timer object and delegate. It is simple and will take in a method and a time delay in milliseconds.
//method you want to call
public void DoSomething()
{
//code to do something
}
//method to execute a delayed method
public async void DelayedExecute(Action action, int timeoutInMilliseconds)
{
await System.Threading.Tasks.Task.Delay(timeoutInMilliseconds);
action();
}
//execute DoSomething in 1 second
DelayedExecute(DoSomething, 1000);