public void UnregisterOperation(IReadOnlyOperationStatus operation) { if (_registeredOperations.ContainsKey(operation)) { _registeredOperations[operation].Dispose(); _registeredOperations.Remove(operation); } }
public void RegisterOperation(IReadOnlyOperationStatus operation) { var subscriptions = new CompositeDisposable(); operation.IsActive.Subscribe(isActive => { if (isActive) { _latestActiveOperation.Value = operation; } }).AddTo(subscriptions); operation.Progress.Subscribe(_ => { UpdateProgress(); }).AddTo(subscriptions); operation.Weight.Subscribe(_ => { UpdateProgress(); }).AddTo(subscriptions); _registeredOperations.Add(operation, subscriptions); }