public void Cancel() { lock (this) { if (!cancelled) { cancelled = true; manager.CancelTimer(this); } } }