Skip to content

Instantly share code, notes, and snippets.

@miroslavradojevic
Created August 2, 2018 09:32
Show Gist options
  • Save miroslavradojevic/f721ff3b3cb0173af4dde185b4b1eafa to your computer and use it in GitHub Desktop.
Save miroslavradojevic/f721ff3b3cb0173af4dde185b4b1eafa to your computer and use it in GitHub Desktop.
Timer activated, triggering action after 5000ms. Needs another activation to start interval count again.
namespace TimerElapsed
{
using System;
using System.Timers;
public class Program
{
private static bool elapsed = false;
static Timer myTimer;
static void Main(string[] args)
{
elapsed = false;
myTimer = new Timer();
myTimer.Elapsed += OnMyTimerElapsed;
myTimer.Interval = 5000;
myTimer.AutoReset = false;
myTimer.Enabled = false;
Console.WriteLine("\nStart(): {0}", DateTime.Now);
Console.WriteLine("Usage:\n" +
"a: start timer\n" +
"b: stop timer\n" +
"c: print current timer state (enabled, elapsed)\n" +
"ESC, Ctrl+C to exit\n");
ConsoleKeyInfo keyinfo;
do
{
keyinfo = Console.ReadKey();
if (keyinfo.Key == ConsoleKey.A)
{
Console.WriteLine($"\nEnable and start {myTimer.Interval}ms interval timer {DateTime.Now}");
myTimer.Enabled = true;
myTimer.Start();
elapsed = false;
}
if (keyinfo.Key == ConsoleKey.B)
{
Console.WriteLine($"\nDisable and stop timer {DateTime.Now}");
if (true || myTimer.Enabled) myTimer.Enabled = false;
myTimer.Stop();
elapsed = false;
}
if (keyinfo.Key == ConsoleKey.C)
{
Console.WriteLine($"\nstatus: enabled={myTimer.Enabled} \t elapsed={elapsed}");
}
}
while (keyinfo.Key != ConsoleKey.Escape);
}
private static void OnMyTimerElapsed(object source, ElapsedEventArgs e)
{
Console.ForegroundColor = ConsoleColor.DarkYellow;
Console.WriteLine($"\nelapsed {DateTime.Now}");
Console.ResetColor();
elapsed = true;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment