Question

I'm considering use Task.Delay() for a non-stop timer, because it's more simple and readable.

As I'm new to .NET, I see no significant difference between the two codes. Can you show me the difference (if there is any) between them?

// Create variable at some place
DispatcherTimer timer = new DispatcherTimer();

timer.Interval = TimeSpan.FromSeconds(5);
timer.Tick += timer_Elapsed;
timer.Start();

// Function other place
void timer_Elapsed(object sender, EventArgs e)
{
    //Do stuff
    }

vs

// Every thing inside a function
async void TaskTimer()
{
    while (true)
    {
        await Task.Delay(5000);
        // Do stuff
    }
}
Was it helpful?

Solution

There are two major differences:

  1. The Task.Delay approach will delay the specified amount of time between cycles, while the DispatcherTimer approach will start a new cycle on the specified cycle time.
  2. Task.Delay is more portable, since it does not depend on a type tied to a specific UI.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top