public Timer(TimerCallback callback, Object state, Int32 dueTime, Int32 period) { fTimer = new RemObjects.Elements.RTL.Timer(); fTimer.Data = state; fTimer.Elapsed = (Data) => callback(Data); SetupTimer(dueTime, period); }
private void SetupTimer(Int32 dueTime, Int32 period) { if (dueTime != Timeout.Infinite) { if ((period == 0) || (period == Timeout.Infinite)) { fTimer = new RemObjects.Elements.RTL.Timer(dueTime, false, timer => fCallback(fState)); fTimer.Start(); } else { fTimer = new RemObjects.Elements.RTL.Timer(period, false, timer => fCallback(fState)); fTimer.Start(); } } else { fTimer?.Stop(); fTimer = null; } }