【发布时间】:2011-05-19 04:39:50
【问题描述】:
处置循环中创建的订阅的推荐方法是什么?
在下面的人为示例中,我在 for 循环中生成订阅并将它们添加到 List 并通过 List
这对我来说似乎有点臭,我认为必须有一种更清洁的方法来清理订阅,除非 GC 在运行时处理它们。我需要明确 Dispose 订阅吗?
class Program
{
static void Main(string[] args)
{
Func<int, IEnumerable<int>> func = x =>
{
return Enumerable.Range(0, x);
};
List<IDisposable> subsriptions = new List<IDisposable>();
for (int i = 1; i < 10; i++)
{
var observable = func(i).ToObservable().ToList();
var subscription = observable.Subscribe(x => Console.WriteLine(x.Select(y => y.ToString()).Aggregate((s1, s2) => s1 + "," + s2)));
subsriptions.Add(subscription);
}
Console.ReadLine();
subsriptions.ForEach(s => s.Dispose());
}
}
【问题讨论】:
标签: c# system.reactive