Таймер на C#
Всем доброго времени суток. На связи Алексей Гулынин. В данной статье небольшой статье я бы хотел рассказать, как реализовать таймер в консольном приложении на C#. Для этого будет использовать класс Timer, который входит в пространство имён System.Threading.
Сразу приведу код:
using System;
using System.Threading;
namespace TestConsoleProject
{
class Program
{
static void Main(string[] args)
{
// Время указывается в миллисекундах
Timer timer = new Timer(showTime, null, 0, 2000);
// Таймер будет работать до тех пор, пока мы не нажмём Enter
Console.ReadLine();
}
static void showTime(Object obj)
{
Console.WriteLine("Текущие дата и время: {0}", DateTime.Now.ToString());
}
}
}
Разберем то, какие параметры принимает конструктор Timer:
- showTime — первым параметром мы передаём делегат, который предоставляет выполняемый метод.
- Вторым параметром передаётся объект, в котором содержится информация для метода ответного вызова. Мы же ничего не передаём, ставим null.
- Третьим параметром передаётся количество времени, которое пройдёт, прежде чем заработает метод showTime().
- 4ый параметр — это количество времени между запусками нашего метода, т.е. showTime будет отрабатывать раз в 2 секунды.
Результат работы программы:

Давайте попробуем написать свой таймер с использованием цикла while:
// Пока не нажата клавиша Enter и можно вводить данные в в потоке,
//в котором выполняется программа
while (!(Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Enter))
{
Console.WriteLine("Текущие дата и время: {0}", DateTime.Now.ToString());
Thread.Sleep(2000);
}
Результат работы будет точно таким же, как и в прошлом примере.
В данной небольшой статье вы научились реализовывать таймер в консольном приложении C#.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.




