Делать что-нибудь после видимой отделки? - PullRequest
3 голосов
/ 02 ноября 2011

Я использую IObservable для загрузки в фоновом режиме.Я хочу указать, когда это закончится загрузка.Как я могу сделать это только один раз, а не каждый раз, когда мой ретривер данных возвращает доход?Как мне это сделать?

bool IsLoading = true;
ObservableCollection<MyData> dataList = new
ObservableCollection<MyData>();
DataLoader.RetrieveData().ToObservable(Scheduler.ThreadPool).Select(x => x).ObserverOn(Scheduler.Dispatcher).Subscribe(x => {
    dataList.Add(x);
    IsLoading = false;});

1 Ответ

4 голосов
/ 02 ноября 2011

Вы должны взглянуть на Наконец, метод расширения , он будет делать именно то, что вы хотите!

bool IsLoading = true;
ObservableCollection<MyData> dataList = new ObservableCollection<MyData>();
DataLoader.RetrieveData()
  .ToObservable(Scheduler.ThreadPool)
  .Select(x => x)
  .ObserverOn(Scheduler.Dispatcher)
  .Finally(() => IsLoading = false)
  .Subscribe(x => dataList.Add(x));

Это должно выполняться после завершения наблюдаемой последовательности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...