private ThreadPoolTimer ( TimeElapsedHandler handler, TimeSpan delay, bool isPeriodic ) : System | ||
handler | TimeElapsedHandler | |
delay | TimeSpan | |
isPeriodic | bool | |
return | System |
private ThreadPoolTimer (TimeElapsedHandler handler, TimeSpan delay, bool isPeriodic)
{
Delay = delay;
if (isPeriodic)
Period = delay;
this.handler = handler;
this.realTimer = new Timer (t =>
{
var ltimer = (ThreadPoolTimer)t;
if (!ltimer.isCanceled)
{
Task.Factory.StartNew (o =>
{
ThreadPoolTimer taskedTimer = (ThreadPoolTimer)o;
taskedTimer.handler (taskedTimer);
}, ltimer);
}
}, this, (int)delay.TotalMilliseconds, (isPeriodic) ? (int)delay.TotalMilliseconds : Timeout.Infinite);
}