Class ConcurrentCachingList<T>
List wrapper that allows for addition and removal even during enumeration.
Done by caching changes and allowing explicit application using Apply* methods.
This version has individual locks for cached and non-cached versions, allowing
each to be managed efficiently even across multiple threads
Inheritance
System.Object
ConcurrentCachingList<T>
Assembly: VRage.Library.dll
Syntax
public class ConcurrentCachingList<T> : Object, IReadOnlyList<T>, IEnumerable<T>, IEnumerable, IReadOnlyCollection<T>
Type Parameters
Constructors
ConcurrentCachingList()
Declaration
public ConcurrentCachingList()
ConcurrentCachingList(Int32)
Declaration
public ConcurrentCachingList(int capacity)
Parameters
Type |
Name |
Description |
System.Int32 |
capacity |
|
Properties
Count
Declaration
public int Count { get; }
Property Value
Type |
Description |
System.Int32 |
|
IsEmpty
Declaration
public bool IsEmpty { get; }
Property Value
Type |
Description |
System.Boolean |
|
Item[Int32]
Declaration
public T this[int index] { get; }
Parameters
Type |
Name |
Description |
System.Int32 |
index |
|
Property Value
Methods
Add(T)
Declaration
public void Add(T entity)
Parameters
Type |
Name |
Description |
T |
entity |
|
ApplyAdditions()
Declaration
public void ApplyAdditions()
ApplyChanges()
Declaration
public void ApplyChanges()
ApplyRemovals()
Declaration
public void ApplyRemovals()
Declaration
public void ClearImmediate()
ClearList()
Declaration
DebugCheckEmpty()
Declaration
public void DebugCheckEmpty()
GetEnumerator()
Declaration
public ConcurrentEnumerator<SpinLockRef.Token, T, List<T>.Enumerator> GetEnumerator()
Returns
Type |
Description |
VRage.Library.Collections.ConcurrentEnumerator<VRage.Library.Threading.SpinLockRef.Token, T, System.Collections.Generic.List.Enumerator<>> |
|
Invoke(Action)
Declaration
public void Invoke(Action action)
Parameters
Type |
Name |
Description |
System.Action |
action |
|
Remove(T, Boolean)
Declaration
public void Remove(T entity, bool immediate = false)
Parameters
Type |
Name |
Description |
T |
entity |
|
System.Boolean |
immediate |
|
Immediately removes an element at the specified index.
Declaration
public void RemoveAtImmediately(int index)
Parameters
Type |
Name |
Description |
System.Int32 |
index |
Index of the element to remove immediately.
|
Sort(IComparer<T>)
Declaration
public void Sort(IComparer<T> comparer)
Parameters
Type |
Name |
Description |
System.Collections.Generic.IComparer<T> |
comparer |
|
ToString()
Declaration
public override string ToString()
Returns
Type |
Description |
System.String |
|