protected virtual void OnFire() { context.Post(delegate { lock (timerLock) { if (cancelled) return; } if (callback != null) callback(); #region Compatibility code if (oldCallback != null) oldCallback(oldData); #endregion }, null); }