小编voq*_*oqk的帖子

为什么这个Observable.Generate重载会导致内存泄漏?[使用Timespan <15ms]

在我的机器上大约10秒后,以下Rx.NET代码将消耗大约500 MB的内存.

var stream =
    Observable.Range(0, 10000)
              .SelectMany(i => Observable.Generate(
                  0, 
                  j => true, 
                  j => j + 1, 
                  j => new { N = j },
                  j => TimeSpan.FromMilliseconds(1)));

stream.Subscribe();
Run Code Online (Sandbox Code Playgroud)

如果我使用Observable.Generate没有Func<int, TimeSpan>参数的重载我的内存使用量为35 MB.

var stream =
    Observable.Range(0, 10000)
              .SelectMany(i => Observable.Generate(
                  0,
                  j => true,
                  j => j + 1,
                  j => new { N = j }));
                  // j => TimeSpan.FromMilliseconds(1))); ** Removed! **

stream.Subscribe();
Run Code Online (Sandbox Code Playgroud)

使用SelectMany()或Merge()扩展方法时似乎只是一个问题.

c# system.reactive

12
推荐指数
1
解决办法
301
查看次数

标签 统计

c# ×1

system.reactive ×1