using System;
using System.Timers;
using System.Threading;
using Timer = System.Timers.Timer;
class MainClass
{
static int _Count=0;
static AutoResetEvent _ResetEvent = new AutoResetEvent(false);
static int _AlarmThreadId;
public static void Main()
{
using( Timer timer = new Timer() ){
timer.AutoReset = true;
timer.Interval = 1000;
timer.Elapsed += new ElapsedEventHandler(Alarm);
timer.Start();
_ResetEvent.WaitOne();
}
if(_AlarmThreadId ==Thread.CurrentThread.ManagedThreadId){
throw new ApplicationException("Thread Ids are the same.");
}
throw new ApplicationException(" my ");
Console.WriteLine(_AlarmThreadId);
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(_Count);
}
static void Alarm(object sender, ElapsedEventArgs eventArgs)
{
_Count++;
Console.WriteLine("{0}:- {1}",eventArgs.SignalTime.ToString("T"),_Count);
if (_Count >= 9)
{
_AlarmThreadId = Thread.CurrentThread.ManagedThreadId;
_ResetEvent.Set();
}
}
}