namespace MeloongCore; public class ConcurrentList : SynchronizedCollection, IEnumerable, IEnumerable { // 构造函数 public ConcurrentList() : base() { } public ConcurrentList(IEnumerable data) : base(new object(), data) { } public static implicit operator ConcurrentList(List data) => new(data); public static implicit operator List(ConcurrentList data) => new(data); // 对枚举器进行覆写,返回一个临时副本 public new IEnumerator GetEnumerator() { lock (SyncRoot) { return Items.ToList().GetEnumerator(); } } IEnumerator IEnumerable.GetEnumerator() { lock (SyncRoot) { return Items.ToList().GetEnumerator(); } } }