Sormak mantıksız bir şey değil. Orada vardır dedikleri tek yöntem ise diğer yöntemlerle birlikte iş parçacığı emniyet sorunlarına neden olabilir yöntemleri güvenlidir davaları.
Ancak, reflektörde gösterilen kodu göz önünde bulundurduğunuzda, bu açıkça bir durum değildir:
public void Add(T item)
{
if (this._size == this._items.Length)
{
this.EnsureCapacity(this._size + 1);
}
this._items[this._size++] = item;
this._version++;
}
EnsureCapacityKendi içinde iş parçacığı güvenli olsa bile (ve kesinlikle değildir), yukarıdaki kod, artım operatörüne eşzamanlı çağrıların yanlış yazmalara neden olma olasılığı göz önüne alındığında, açıkça iş parçacığı güvenli olmayacaktır.
Ya kilitleyin, ConcurrentList'i kullanın ya da birden fazla iş parçacığının yazdığı yer için kilitsiz bir kuyruk kullanın ve işlerini bitirdikten sonra - ya doğrudan ya da bir listeyi doldurarak - ondan okuyun (varsayıyorum ki Birden çok eşzamanlı yazma ve ardından tek iş parçacıklı okuma burada sizin kalıbınızdır, sorunuza bakılırsa, aksi takdirde Addçağrılan tek yöntemin nerede olduğu koşulun herhangi bir işe yarayabileceğini göremiyorum ).