CompositeDisposable-确定性顺序?

Tim*_*lds 3 .net c# system.reactive

此问题引用名称空间中的CompositeDisposableSystem.Reactive.Disposables

对其成员进行CompositeDisposable呼叫的顺序是否Dispose确定?

以下实验产生了list ['a', 'b'],但是我在文档中看不到保证一定顺序的任何东西。

var result = new List<char>();
var disposable = new CompositeDisposable(
    Disposable.Create(() => result.Add('a')),
    Disposable.Create(() => result.Add('b')));
disposable.Dispose();
Run Code Online (Sandbox Code Playgroud)

Eni*_*ity 5

内部CompositeDisposable使用以下字段存储一次性用品:

private List<IDisposable> disposables;
Run Code Online (Sandbox Code Playgroud)

它使用list .Add(...)方法将项目添加到列表的末尾。通过构造函数添加项目时,列表将按顺序用一次性物品实例化。

然后foreach,在处理时,它会在一次性用品上使用一个简单的循环。

因此,您可以确信当前的实现将按顺序处理它们。您还可以做出明智的猜测,即使他们将来更改了实现,他们也不会更改此行为,否则将是一个重大更改。