Observables vs Tasks - предпочтительная реализация?

Я просто хочу получить данные асинхронно, и после получения данных показать их в пользовательском интерфейсе (Winforms).

Используя .net 4.0, есть 2 способа, которыми я могу это реализовать (я знаю, что их больше, но я использую эти два):

    var task = Task.Factory.StartNew(() => RetrieveData());
    task.ContinueWith(x => SetDataInUi(x.Result), TaskScheduler.FromCurrentSynchronizationContext());

ИЛИ

var obs = Observable.Start(() => RetrieveData());
obs.ObserveOn(SynchronizationContext.Current).Subscribe(x => SetDataInUi(x));

Насколько я понимаю, они оба будут делать одно и то же. Есть ли причина выбрать один из них?

6
задан user981225 9 February 2012 в 18:05
поделиться