次のようなコードが存在すると仮定します。
public IEnumerable<DataType> GetAllData(string[] ids) {
foreach(var id in ids) {
//this is a time-consuming operation, like query from database
var data = this.repo.Find(id);
yield return data;
}
}
Rx をフロントエンド コードに適用しようとしました。
var observable = GetAllData(new[] { "1", "2", "3" }).ToObservable();
var subs = observable
.SubscribeOn(Scheduler.Default)
.Subscribe(
data => Console.WriteLine(data.Id),
() => Console.WriteLine("All Data Fetched Completed"));
そして、それは適切に機能しています。
しかし、サブスクリプションを にバインドすると、IObservable
途中でデータを取得し続けるのを止める方法はありますか? サブスクリプションを破棄しても、列挙は停止しません。