gpt4 book ai didi

c# - CompositeDisposable - 确定性顺序?

转载 作者:行者123 更新时间:2023-11-30 14:10:17 24 4
gpt4 key购买 nike

这个问题引用了 CompositeDisposable System.Reactive.Disposables 命名空间中的类。

CompositeDisposable 对其成员调用 Dispose 的顺序是否确定?

以下实验生成列表 ['a', 'b'],但我在文档中看不到任何保证特定顺序的内容。

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

最佳答案

在内部 CompositeDisposable 使用以下字段来存储一次性元素:

private List<IDisposable> disposables;

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

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

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

关于c# - CompositeDisposable - 确定性顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24765432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com