private void DisposeTimer() { var tmp = timer; if (tmp == null) { return; } Utils.SafeExecute(tmp.Dispose); timer = null; asyncCallback = null; if (activationData != null) { activationData.OnTimerDisposed(this); } }