コード例 #1
0
ファイル: ObservableExtension.cs プロジェクト: mateusgmc/CTR
        public static IObservable <T> Busy <T>(this IObservable <T> observable, ReactiveViewModelBase viewModel, IScheduler scheduler)
        {
            var stream = Observable.Create <T>(obs =>
            {
                viewModel.ObservingCount++;
                var disposables = new CompositeDisposable
                {
                    observable
                    .SubscribeOn(scheduler)
                    .ObserveOn(viewModel.UiDispatcherScheduler)
                    .Subscribe(e => obs.OnNext(e), ex => obs.OnError(ex), () => obs.OnCompleted()),

                    Disposable.Create(() =>
                    {
                        viewModel.ObservingCount--;
                    })
                };
                return(disposables);
            });

            return(stream.SubscribeOn(viewModel.UiDispatcherScheduler));
        }
コード例 #2
0
ファイル: ObservableExtension.cs プロジェクト: mateusgmc/CTR
 public static IObservable <T> Busy <T>(this IObservable <T> observable, ReactiveViewModelBase viewModel)
 => Busy(observable, viewModel, NewThreadScheduler.Default);