void ICancelDelegate.Invoke(ICancelValueContainer valueContainer) { // In case this is called recursively from another callback. if (_isDisposed | IsCanceled) { return; } ValueContainer = valueContainer; ValueContainer.Retain(); InvokeCallbacks(); }
void ICancelDelegate.Invoke(ICancelValueContainer valueContainer) { _SetCurrentInvoker(this); try { // Canceler will dispose this if it can. canceler.InvokeFromToken(valueContainer, this); } finally { _ClearCurrentInvoker(); } }