Как запустить метод через определенное время?

Рейтинг: 2Ответов: 1Опубликовано: 05.02.2015

Как луче всего запустить один раз метод через определенное время?

То есть нужно вызвать метод через заданное время.

Можно ли это сделать через Task.Delay()?

Ответы

▲ 4Принят

Если ваш метод асинхронный, то да, можно использовать Task.Delay():

public async Task MethodWithDelayAsync(int milliseconds)
{
    await Task.Delay(milliseconds);

    // остальной код
}

Если код синхронный и вы не хотите использовать async/await, то можете использовать Timer из System.Threading: устанавливаете задержку и однократный запуск.

new Timer(MyMethod, null, 1000, Timeout.Infinite);

https://msdn.microsoft.com/ru-ru/library/system.threading.timer.timer(v=vs.110).aspx