Как добавить таймер в консольное приложение C#

Используйте класс System.Threading.Timer.

System.Windows.Forms.Timer .cs-file предназначен в первую очередь .cs-file для использования в одном console потоке, обычно в потоке пользовательского c#-language интерфейса Windows Forms.

На csharp ранних стадиях разработки timers платформы .NET также был c#-language добавлен класс System.Timers. Однако console обычно рекомендуется использовать console вместо этого класс System.Threading.Timer, поскольку c#.net в любом случае это всего c#.net лишь оболочка для System.Threading.Timer.

Также c# рекомендуется всегда использовать .cs-file статический (общий в VB.NET) System.Threading.Timer, если timer вы разрабатываете службу console Windows и вам требуется периодический console запуск таймера. Это позволит timer избежать преждевременной csharp сборки мусора вашего объекта visual-c# таймера.

Вот пример таймера c# в консольном приложении:

using System; 
using System.Threading; 
public static class Program 
{ 
    public static void Main() 
    { 
       Console.WriteLine("Main thread: starting a timer"); 
       Timer t = new Timer(ComputeBoundOp, 5, 0, 2000); 
       Console.WriteLine("Main thread: Doing other work here...");
       Thread.Sleep(10000); // Simulating other work (10 seconds)
       t.Dispose(); // Cancel the timer now
    }
    // This method's signature must match the TimerCallback delegate
    private static void ComputeBoundOp(Object state) 
    { 
       // This method is executed by a thread pool thread 
       Console.WriteLine("In ComputeBoundOp: state={0}", state); 
       Thread.Sleep(1000); // Simulates other work (1 second)
       // When this method returns, the thread goes back 
       // to the pool and waits for another task 
    }
}

Из c#-language книги CLR Via C# Джеффа Рихтера. Кстати, эта timers книга описывает обоснование c#.net трех типов таймеров в главе console 23, настоятельно рекомендуется.

c#

console

timer

2022-11-03T23:24:32+00:00